[STATEMENT]
lemma SeqQuoteP_Mem_imp_QMem_and_Subset:
  assumes "atom i \<sharp> (j,j',i',si,ki,sj,kj)" "atom i' \<sharp> (j,j',si,ki,sj,kj)"
          "atom j \<sharp> (j',si,ki,sj,kj)" "atom j' \<sharp> (si,ki,sj,kj)"
          "atom si \<sharp> (ki,sj,kj)" "atom sj \<sharp> (ki,kj)"
  shows "{SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj}
         \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j')))  AND
           (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
obtain k::name and l::name and li::name and lj::name
     and m::name and n::name and sm::name and sn::name and sm'::name and sn'::name
   where atoms: "atom lj \<sharp> (li,l,i,j,j',i',si,ki,sj,kj,i,i',k,m,n,sm,sm',sn,sn')"
                "atom li \<sharp> (l,j,j',i,i',si,ki,sj,kj,i,i',k,m,n,sm,sm',sn,sn')"
                "atom l \<sharp> (j,j',i,i',si,ki,sj,kj,i,i',k,m,n,sm,sm',sn,sn')"
                "atom k \<sharp> (j,j',i,i',si,ki,sj,kj,m,n,sm,sm',sn,sn')"
                "atom m \<sharp> (j,j',i,i',si,ki,sj,kj,n,sm,sm',sn,sn')"
                "atom n \<sharp> (j,j',i,i',si,ki,sj,kj,sm,sm',sn,sn')"
                "atom sm \<sharp> (j,j',i,i',si,ki,sj,kj,sm',sn,sn')"
                "atom sm' \<sharp> (j,j',i,i',si,ki,sj,kj,sn,sn')"
                "atom sn \<sharp> (j,j',i,i',si,ki,sj,kj,sn')"
                "atom sn' \<sharp> (j,j',i,i',si,ki,sj,kj)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>lj li l k m n sm sm' sn sn'. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (metis obtain_fresh)
[PROOF STATE]
proof (state)
this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
have "{OrdP(Var k)}
       \<turnstile> All i (All i' (All si (All li (All j (All j' (All sj (All lj
          (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP
           SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP
           HaddP (Var li) (Var lj) (Var k) IMP
             ( (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j')))  AND
               (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))"
        (is "_ \<turnstile> ?scheme")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))
[PROOF STEP]
proof (rule OrdIndH [where j=l])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. atom l \<sharp> (k, SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
 2. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
show "atom l \<sharp> (k, ?scheme)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. atom l \<sharp> (k, SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
using atoms
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)

goal (1 subgoal):
 1. atom l \<sharp> (k, SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
atom l \<sharp> (k, SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
define V p where "V = {i,j,sm,sn}"
        and "p = (atom i \<rightleftharpoons> atom i') + (atom j \<rightleftharpoons> atom j') +
                 (atom sm \<rightleftharpoons> atom sm') + (atom sn \<rightleftharpoons> atom sn')"
[PROOF STATE]
proof (state)
this:
V = {i, j, sm, sn}
p = (atom i \<rightleftharpoons> atom i') + (atom j \<rightleftharpoons> atom j') + (atom sm \<rightleftharpoons> atom sm') + (atom sn \<rightleftharpoons> atom sn')

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
define F where "F \<equiv> make_F V p"
[PROOF STATE]
proof (state)
this:
F \<equiv> make_F V p

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
interpret qp: quote_perm p V F
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. quote_perm p V &&& F \<equiv> make_F V p
[PROOF STEP]
proof unfold_locales
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. atom ` (p \<bullet> V) \<sharp>* V
 2. - p = p
 3. finite V
 4. F \<equiv> make_F V p
[PROOF STEP]
show "finite V"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite V
[PROOF STEP]
by (simp add: V_def)
[PROOF STATE]
proof (state)
this:
finite V

goal (3 subgoals):
 1. atom ` (p \<bullet> V) \<sharp>* V
 2. - p = p
 3. F \<equiv> make_F V p
[PROOF STEP]
show "atom ` (p \<bullet> V) \<sharp>* V"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. atom ` (p \<bullet> V) \<sharp>* V
[PROOF STEP]
using atoms assms
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)

goal (1 subgoal):
 1. atom ` (p \<bullet> V) \<sharp>* V
[PROOF STEP]
by (auto simp: p_def V_def F_def make_F_def fresh_star_def fresh_finite_insert)
[PROOF STATE]
proof (state)
this:
atom ` (p \<bullet> V) \<sharp>* V

goal (2 subgoals):
 1. - p = p
 2. F \<equiv> make_F V p
[PROOF STEP]
show "-p = p"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - p = p
[PROOF STEP]
using assms atoms
[PROOF STATE]
proof (prove)
using this:
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)

goal (1 subgoal):
 1. - p = p
[PROOF STEP]
by (simp add: p_def add.assoc perm_self_inverseI fresh_swap fresh_plus_perm)
[PROOF STATE]
proof (state)
this:
- p = p

goal (1 subgoal):
 1. F \<equiv> make_F V p
[PROOF STEP]
show "F \<equiv> make_F V p"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. F \<equiv> make_F V p
[PROOF STEP]
by (rule F_def)
[PROOF STATE]
proof (state)
this:
F \<equiv> make_F V p

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have V_mem: "i \<in> V" "j \<in> V" "sm \<in> V" "sn \<in> V"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (i \<in> V &&& j \<in> V) &&& sm \<in> V &&& sn \<in> V
[PROOF STEP]
by (auto simp: V_def)  \<comment> \<open>Part of (2) from page 32\<close>
[PROOF STATE]
proof (state)
this:
i \<in> V
j \<in> V
sm \<in> V
sn \<in> V

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Mem1: "{} \<turnstile> (Var i IN Var sm) IMP (Var i IN Eats (Var sm) (Var sn))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {} \<turnstile> Var i IN Var sm IMP Var i IN Eats (Var sm) (Var sn)
[PROOF STEP]
by (blast intro: Mem_Eats_I1)
[PROOF STATE]
proof (state)
this:
{} \<turnstile> Var i IN Var sm IMP Var i IN Eats (Var sm) (Var sn)

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Q_Mem1: "quote_all p V
                     \<turnstile> PfP (Q_Mem (Var i') (Var sm')) IMP
                       PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. quote_all p V \<turnstile> PfP (Q_Mem (Var i') (Var sm')) IMP PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
[PROOF STEP]
using qp.quote_all_MonPon_PfP_ssubst [OF Mem1 subset_refl] assms atoms V_mem
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>supp (Var i IN Var sm) \<subseteq> atom ` V; supp (Var i IN Eats (Var sm) (Var sn)) \<subseteq> atom ` V\<rbrakk> \<Longrightarrow> quote_all p V \<turnstile> PfP (ssubst \<lfloor>Var i IN Var sm\<rfloor>V V F) IMP PfP (ssubst \<lfloor>Var i IN Eats (Var sm) (Var sn)\<rfloor>V V F)
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
i \<in> V
j \<in> V
sm \<in> V
sn \<in> V

goal (1 subgoal):
 1. quote_all p V \<turnstile> PfP (Q_Mem (Var i') (Var sm')) IMP PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
[PROOF STEP]
by (simp add: vquot_fm_def qp.Vs) (simp add: qp.F_unfold p_def)
[PROOF STATE]
proof (state)
this:
quote_all p V \<turnstile> PfP (Q_Mem (Var i') (Var sm')) IMP PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Mem2: "{} \<turnstile> (Var i EQ Var sn) IMP (Var i IN Eats (Var sm) (Var sn))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {} \<turnstile> Var i EQ Var sn IMP Var i IN Eats (Var sm) (Var sn)
[PROOF STEP]
by (blast intro: Mem_Eats_I2)
[PROOF STATE]
proof (state)
this:
{} \<turnstile> Var i EQ Var sn IMP Var i IN Eats (Var sm) (Var sn)

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Q_Mem2: "quote_all p V
                 \<turnstile> PfP (Q_Eq (Var i') (Var sn')) IMP
                   PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. quote_all p V \<turnstile> PfP (Q_Eq (Var i') (Var sn')) IMP PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
[PROOF STEP]
using qp.quote_all_MonPon_PfP_ssubst [OF Mem2 subset_refl] assms atoms V_mem
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>supp (Var i EQ Var sn) \<subseteq> atom ` V; supp (Var i IN Eats (Var sm) (Var sn)) \<subseteq> atom ` V\<rbrakk> \<Longrightarrow> quote_all p V \<turnstile> PfP (ssubst \<lfloor>Var i EQ Var sn\<rfloor>V V F) IMP PfP (ssubst \<lfloor>Var i IN Eats (Var sm) (Var sn)\<rfloor>V V F)
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
i \<in> V
j \<in> V
sm \<in> V
sn \<in> V

goal (1 subgoal):
 1. quote_all p V \<turnstile> PfP (Q_Eq (Var i') (Var sn')) IMP PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
[PROOF STEP]
by (simp add: vquot_fm_def qp.Vs) (simp add: qp.F_unfold p_def)
[PROOF STATE]
proof (state)
this:
quote_all p V \<turnstile> PfP (Q_Eq (Var i') (Var sn')) IMP PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Subs1: "{} \<turnstile> Zero SUBS Var j"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {} \<turnstile> Zero SUBS Var j
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
{} \<turnstile> Zero SUBS Var j

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Q_Subs1: "{QuoteP (Var j) (Var j')} \<turnstile> PfP (Q_Subset Zero (Var j'))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {QuoteP (Var j) (Var j')} \<turnstile> PfP (Q_Subset Zero (Var j'))
[PROOF STEP]
using qp.quote_all_PfP_ssubst [OF Subs1, of "{j}"] assms atoms
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>{j} \<subseteq> V; supp (Zero SUBS Var j) \<subseteq> atom ` V\<rbrakk> \<Longrightarrow> quote_all p {j} \<turnstile> PfP (ssubst \<lfloor>Zero SUBS Var j\<rfloor>{j} {j} F)
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)

goal (1 subgoal):
 1. {QuoteP (Var j) (Var j')} \<turnstile> PfP (Q_Subset Zero (Var j'))
[PROOF STEP]
by (simp add: qp.ssubst_Subset vquot_tm_def supp_conv_fresh fresh_at_base del: qp.ssubst_single)
            (simp add: qp.F_unfold p_def V_def)
[PROOF STATE]
proof (state)
this:
{QuoteP (Var j) (Var j')} \<turnstile> PfP (Q_Subset Zero (Var j'))

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Subs2: "{} \<turnstile> Var sm SUBS Var j IMP Var sn IN Var j IMP Eats (Var sm) (Var sn) SUBS Var j"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {} \<turnstile> Var sm SUBS Var j IMP Var sn IN Var j IMP Eats (Var sm) (Var sn) SUBS Var j
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
{} \<turnstile> Var sm SUBS Var j IMP Var sn IN Var j IMP Eats (Var sm) (Var sn) SUBS Var j

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Q_Subs2: "quote_all p V
                     \<turnstile> PfP (Q_Subset (Var sm') (Var j')) IMP
                       PfP (Q_Mem (Var sn') (Var j')) IMP
                       PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. quote_all p V \<turnstile> PfP (Q_Subset (Var sm') (Var j')) IMP PfP (Q_Mem (Var sn') (Var j')) IMP PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
using qp.quote_all_MonPon2_PfP_ssubst [OF Subs2 subset_refl] assms atoms V_mem
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>supp (Var sm SUBS Var j) \<subseteq> atom ` V; supp (Var sn IN Var j) \<subseteq> atom ` V; supp (Eats (Var sm) (Var sn) SUBS Var j) \<subseteq> atom ` V\<rbrakk> \<Longrightarrow> quote_all p V \<turnstile> PfP (ssubst \<lfloor>Var sm SUBS Var j\<rfloor>V V F) IMP PfP (ssubst \<lfloor>Var sn IN Var j\<rfloor>V V F) IMP PfP (ssubst \<lfloor>Eats (Var sm) (Var sn) SUBS Var j\<rfloor>V V F)
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
i \<in> V
j \<in> V
sm \<in> V
sn \<in> V

goal (1 subgoal):
 1. quote_all p V \<turnstile> PfP (Q_Subset (Var sm') (Var j')) IMP PfP (Q_Mem (Var sn') (Var j')) IMP PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
by (simp add: qp.ssubst_Subset vquot_tm_def supp_conv_fresh subset_eq fresh_at_base)
            (simp add: vquot_fm_def qp.F_unfold p_def V_def)
[PROOF STATE]
proof (state)
this:
quote_all p V \<turnstile> PfP (Q_Subset (Var sm') (Var j')) IMP PfP (Q_Mem (Var sn') (Var j')) IMP PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Ext: "{} \<turnstile> Var i SUBS Var sn IMP Var sn SUBS Var i IMP Var i EQ Var sn"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {} \<turnstile> Var i SUBS Var sn IMP Var sn SUBS Var i IMP Var i EQ Var sn
[PROOF STEP]
by (blast intro: Equality_I)
[PROOF STATE]
proof (state)
this:
{} \<turnstile> Var i SUBS Var sn IMP Var sn SUBS Var i IMP Var i EQ Var sn

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
have Q_Ext: "{QuoteP (Var i) (Var i'), QuoteP (Var sn) (Var sn')}
                   \<turnstile> PfP (Q_Subset (Var i') (Var sn')) IMP
                     PfP (Q_Subset (Var sn') (Var i')) IMP
                     PfP (Q_Eq (Var i') (Var sn'))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {QuoteP (Var i) (Var i'), QuoteP (Var sn) (Var sn')} \<turnstile> PfP (Q_Subset (Var i') (Var sn')) IMP PfP (Q_Subset (Var sn') (Var i')) IMP PfP (Q_Eq (Var i') (Var sn'))
[PROOF STEP]
using qp.quote_all_MonPon2_PfP_ssubst [OF Ext, of "{i,sn}"] assms atoms
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>{i, sn} \<subseteq> V; supp (Var i SUBS Var sn) \<subseteq> atom ` V; supp (Var sn SUBS Var i) \<subseteq> atom ` V; supp (Var i EQ Var sn) \<subseteq> atom ` V\<rbrakk> \<Longrightarrow> quote_all p {i, sn} \<turnstile> PfP (ssubst \<lfloor>Var i SUBS Var sn\<rfloor>{i, sn} {i, sn} F) IMP PfP (ssubst \<lfloor>Var sn SUBS Var i\<rfloor>{i, sn} {i, sn} F) IMP PfP (ssubst \<lfloor>Var i EQ Var sn\<rfloor>{i, sn} {i, sn} F)
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)

goal (1 subgoal):
 1. {QuoteP (Var i) (Var i'), QuoteP (Var sn) (Var sn')} \<turnstile> PfP (Q_Subset (Var i') (Var sn')) IMP PfP (Q_Subset (Var sn') (Var i')) IMP PfP (Q_Eq (Var i') (Var sn'))
[PROOF STEP]
by (simp add: qp.ssubst_Subset vquot_tm_def supp_conv_fresh subset_eq fresh_at_base
                  del: qp.ssubst_single)
            (simp add: vquot_fm_def qp.F_unfold p_def V_def)
[PROOF STATE]
proof (state)
this:
{QuoteP (Var i) (Var i'), QuoteP (Var sn) (Var sn')} \<turnstile> PfP (Q_Subset (Var i') (Var sn')) IMP PfP (Q_Subset (Var sn') (Var i')) IMP PfP (Q_Eq (Var i') (Var sn'))

goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
show "{} \<turnstile> All k (OrdP (Var k) IMP (All2 l (Var k) (?scheme(k::= Var l)) IMP ?scheme))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))
[PROOF STEP]
apply (rule All_I Imp_I)+
[PROOF STATE]
proof (prove)
goal (10 subgoals):
 1. {HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
 2. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom lj \<sharp> C
 3. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom sj \<sharp> C
 4. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom j' \<sharp> C
 5. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom j \<sharp> C
 6. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom li \<sharp> C
 7. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom si \<sharp> C
 8. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom i' \<sharp> C
 9. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom i \<sharp> C
 10. \<forall>C\<in>{}. atom k \<sharp> C
[PROOF STEP]
using atoms assms
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)

goal (10 subgoals):
 1. {HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
 2. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom lj \<sharp> C
 3. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom sj \<sharp> C
 4. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom j' \<sharp> C
 5. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom j \<sharp> C
 6. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom li \<sharp> C
 7. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom si \<sharp> C
 8. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom i' \<sharp> C
 9. \<forall>C\<in>{All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)), OrdP (Var k)}. atom i \<sharp> C
 10. \<forall>C\<in>{}. atom k \<sharp> C
[PROOF STEP]
apply simp_all
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
apply (rule cut_same [where A = "QuoteP (Var i) (Var i')"])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), OrdP (Var k)} \<turnstile> QuoteP (Var i) (Var i')
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
apply (blast intro: QuoteP_I)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
apply (rule cut_same [where A = "QuoteP (Var j) (Var j')"])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), OrdP (Var k)} \<turnstile> QuoteP (Var j) (Var j')
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
apply (blast intro: QuoteP_I)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
apply (rule rotate6)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
apply (rule Conj_I)
        \<comment> \<open>@{term"Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))"}\<close>
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A222
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {?A222, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut1 [OF SeqQuoteP_lemma [of m "Var j" "Var j'" "Var sj" "Var lj" n sm sm' sn sn']], simp_all, blast)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var j EQ Zero AND Var j' EQ Zero OR SyntaxN.Ex m (SyntaxN.Ex n (SyntaxN.Ex sm (SyntaxN.Ex sm' (SyntaxN.Ex sn (SyntaxN.Ex sn' (Var m IN Var lj AND Var n IN Var lj AND SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m) AND SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) AND Var j EQ Eats (Var sm) (Var sn) AND Var j' EQ Q_Eats (Var sm') (Var sn'))))))), All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Imp_I Disj_EH Conj_EH)+
        \<comment> \<open>case 1, @{term "Var j EQ Zero"}\<close>
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var j EQ Zero, Var j' EQ Zero, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex m (SyntaxN.Ex n (SyntaxN.Ex sm (SyntaxN.Ex sm' (SyntaxN.Ex sn (SyntaxN.Ex sn' (Var m IN Var lj AND Var n IN Var lj AND SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m) AND SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) AND Var j EQ Eats (Var sm) (Var sn) AND Var j' EQ Q_Eats (Var sm') (Var sn'))))))), Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "Var i IN Zero"])
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var j EQ Zero, Var j' EQ Zero, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i IN Zero
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i IN Zero, Var j EQ Zero, Var j' EQ Zero, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex m (SyntaxN.Ex n (SyntaxN.Ex sm (SyntaxN.Ex sm' (SyntaxN.Ex sn (SyntaxN.Ex sn' (Var m IN Var lj AND Var n IN Var lj AND SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m) AND SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) AND Var j EQ Eats (Var sm) (Var sn) AND Var j' EQ Q_Eats (Var sm') (Var sn'))))))), Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Var j'))
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: Mem_cong [THEN Iff_MP_same], blast)
        \<comment> \<open>case 2, @{term "Var j EQ Eats (Var sm) (Var sn)"}\<close>
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex m (SyntaxN.Ex n (SyntaxN.Ex sm (SyntaxN.Ex sm' (SyntaxN.Ex sn (SyntaxN.Ex sn' (Var m IN Var lj AND Var n IN Var lj AND SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m) AND SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) AND Var j EQ Eats (Var sm) (Var sn) AND Var j' EQ Q_Eats (Var sm') (Var sn'))))))), Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Imp_I Conj_EH Ex_EH)+
[PROOF STATE]
proof (prove)
goal (14 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom sn' \<sharp> PfP (Q_Mem (Var i') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom sn' \<sharp> C
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom sn \<sharp> PfP (Q_Mem (Var i') (Var j'))
 5. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom sn \<sharp> C
 6. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom sm' \<sharp> PfP (Q_Mem (Var i') (Var j'))
 7. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom sm' \<sharp> C
 8. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom sm \<sharp> PfP (Q_Mem (Var i') (Var j'))
 9. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom sm \<sharp> C
 10. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom n \<sharp> PfP (Q_Mem (Var i') (Var j'))
A total of 14 subgoals...
[PROOF STEP]
apply simp_all
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Var_Eq_subst_Iff [THEN rotate2, THEN Iff_MP_same], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "QuoteP (Var sm) (Var sm')"])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> QuoteP (Var sm) (Var sm')
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: QuoteP_I)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "QuoteP (Var sn) (Var sn')"])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> QuoteP (Var sn) (Var sn')
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: QuoteP_I)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "Var i IN Eats (Var sm) (Var sn)"])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i IN Eats (Var sm) (Var sn)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i IN Eats (Var sm) (Var sn), QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Mem_cong [OF Refl, THEN Iff_MP_same])
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?u321 EQ Eats (Var sm) (Var sn)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i IN ?u321
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i IN Eats (Var sm) (Var sn), QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule AssumeH Mem_Eats_E)+
        \<comment> \<open>Eats case 1. IH for sm\<close>
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "OrdP (Var m)"])
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> OrdP (Var m)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp Ord_IN_Ord SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [OF exists_HaddP [where j=l and x="Var li" and y="Var m"]])
[PROOF STATE]
proof (prove)
goal (5 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> OrdP (Var m)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom l \<sharp> (Var li, Var m)
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex l (HaddP (Var li) (Var m) (Var l)), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 5. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All2_E [where x="Var l", THEN rotate13], simp_all)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var l IN Var k
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp HaddP_Mem_cancel_left [THEN Iff_MP2_same] SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var i"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var i'"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var si"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var li"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sm"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var sm) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var sm IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var sm IMP PfP (Q_Subset (Var i') (Var j')))))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sm'"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var sm) (Var sm') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var sm IMP PfP (Q_Mem (Var i') (Var sm'))) AND (Var i SUBS Var sm IMP PfP (Q_Subset (Var i') (Var sm'))))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sj"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var sm) (Var sm') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var sm IMP PfP (Q_Mem (Var i') (Var sm'))) AND (Var i SUBS Var sm IMP PfP (Q_Subset (Var i') (Var sm')))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var m"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m) IMP HaddP (Var li) (Var m) (Var l) IMP (Var i IN Var sm IMP PfP (Q_Mem (Var i') (Var sm'))) AND (Var i SUBS Var sm IMP PfP (Q_Subset (Var i') (Var sm'))), HaddP (Var li) (Var m) (Var l), OrdP (Var m), Var i IN Var sm, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (force intro: MP_thin [OF Q_Mem1] simp add: V_def p_def)
        \<comment> \<open>Eats case 2\<close>
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule rotate13)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "OrdP (Var n)"])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> OrdP (Var n)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp Ord_IN_Ord SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [OF exists_HaddP [where j=l and x="Var li" and y="Var n"]])
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> OrdP (Var n)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom l \<sharp> (Var li, Var n)
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex l (HaddP (Var li) (Var n) (Var l)), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule MP_same)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A829 IMP PfP (Q_Mem (Var i') (Q_Eats (Var sm') (Var sn')))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A829
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Q_Mem2 [THEN thin])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> quote_all p V \<subseteq> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Eq (Var i') (Var sn'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (simp add: V_def p_def)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Eq (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule MP_same)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A834 IMP PfP (Q_Eq (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A834
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule MP_same)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A837 IMP ?A834 IMP PfP (Q_Eq (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A837
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A834
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Q_Ext [THEN thin])
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), QuoteP (Var sn) (Var sn')} \<subseteq> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (simp add: V_def p_def)
        \<comment> \<open>@{term"PfP (Q_Subset (Var i') (Var sn'))"}\<close>
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All2_E [where x="Var l", THEN rotate14], simp_all)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var l IN Var k
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp HaddP_Mem_cancel_left [THEN Iff_MP2_same] SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var i"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var i'"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var si"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var li"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sn"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var sn) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var sn IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var sn IMP PfP (Q_Subset (Var i') (Var j')))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sn'"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var sn) (Var sn') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var sn IMP PfP (Q_Mem (Var i') (Var sn'))) AND (Var i SUBS Var sn IMP PfP (Q_Subset (Var i') (Var sn'))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sj"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var sn) (Var sn') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var sn IMP PfP (Q_Mem (Var i') (Var sn'))) AND (Var i SUBS Var sn IMP PfP (Q_Subset (Var i') (Var sn')))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var n"], simp)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) IMP HaddP (Var li) (Var n) (Var l) IMP (Var i IN Var sn IMP PfP (Q_Mem (Var i') (Var sn'))) AND (Var i SUBS Var sn IMP PfP (Q_Subset (Var i') (Var sn'))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Imp_E, blast intro: Hyp)+
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {(Var i IN Var sn IMP PfP (Q_Mem (Var i') (Var sn'))) AND (Var i SUBS Var sn IMP PfP (Q_Subset (Var i') (Var sn'))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Conj_E)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i IN Var sn IMP PfP (Q_Mem (Var i') (Var sn')), Var i SUBS Var sn IMP PfP (Q_Subset (Var i') (Var sn')), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule thin1)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var sn IMP PfP (Q_Subset (Var i') (Var sn')), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var sn'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro!: Imp_E EQ_imp_SUBS [THEN cut1])
        \<comment> \<open>@{term"PfP (Q_Subset (Var sn') (Var i'))"}\<close>
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All2_E [where x="Var l", THEN rotate14], simp_all)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var l IN Var k
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp HaddP_Mem_cancel_left [THEN Iff_MP2_same] SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sn"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sn) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sn'"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sn) (Var sn') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j'))))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sj"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All lj (SyntaxN.All k (SeqQuoteP (Var sn) (Var sn') (Var sj) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var lj) (Var k) IMP HaddP (Var li) (Var k) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j')))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var n"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j (SyntaxN.All j' (SyntaxN.All lj (SyntaxN.All k (SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) IMP SeqQuoteP (Var j) (Var j') (Var lj) (Var k) IMP HaddP (Var n) (Var k) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j'))))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var i"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j' (SyntaxN.All lj (SyntaxN.All k (SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) IMP SeqQuoteP (Var i) (Var j') (Var lj) (Var k) IMP HaddP (Var n) (Var k) (Var l) IMP (Var sn IN Var i IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var i IMP PfP (Q_Subset (Var sn') (Var j')))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var i'"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All lj (SyntaxN.All k (SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) IMP SeqQuoteP (Var i) (Var i') (Var lj) (Var k) IMP HaddP (Var n) (Var k) (Var l) IMP (Var sn IN Var i IMP PfP (Q_Mem (Var sn') (Var i'))) AND (Var sn SUBS Var i IMP PfP (Q_Subset (Var sn') (Var i'))))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var si"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All k (SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) IMP SeqQuoteP (Var i) (Var i') (Var si) (Var k) IMP HaddP (Var n) (Var k) (Var l) IMP (Var sn IN Var i IMP PfP (Q_Mem (Var sn') (Var i'))) AND (Var sn SUBS Var i IMP PfP (Q_Subset (Var sn') (Var i')))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var li"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n) IMP SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP HaddP (Var n) (Var li) (Var l) IMP (Var sn IN Var i IMP PfP (Q_Mem (Var sn') (Var i'))) AND (Var sn SUBS Var i IMP PfP (Q_Subset (Var sn') (Var i'))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Imp_E, blast intro: Hyp)+
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var n) (Var li) (Var l) IMP (Var sn IN Var i IMP PfP (Q_Mem (Var sn') (Var i'))) AND (Var sn SUBS Var i IMP PfP (Q_Subset (Var sn') (Var i'))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Imp_E)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> HaddP (Var n) (Var li) (Var l)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {(Var sn IN Var i IMP PfP (Q_Mem (Var sn') (Var i'))) AND (Var sn SUBS Var i IMP PfP (Q_Subset (Var sn') (Var i'))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp HaddP_commute [THEN cut2] SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {(Var sn IN Var i IMP PfP (Q_Mem (Var sn') (Var i'))) AND (Var sn SUBS Var i IMP PfP (Q_Subset (Var sn') (Var i'))), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Conj_E)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var sn IN Var i IMP PfP (Q_Mem (Var sn') (Var i')), Var sn SUBS Var i IMP PfP (Q_Subset (Var sn') (Var i')), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule thin1)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var sn SUBS Var i IMP PfP (Q_Subset (Var sn') (Var i')), HaddP (Var li) (Var n) (Var l), OrdP (Var n), QuoteP (Var i) (Var i'), Var i EQ Var sn, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var j EQ Eats (Var sm) (Var sn), Var j' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var sj) (Var n), SeqQuoteP (Var sm) (Var sm') (Var sj) (Var m), Var n IN Var lj, Var m IN Var lj, Var i IN Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sn') (Var i'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro!: Imp_E EQ_imp_SUBS2 [THEN cut1])
        \<comment> \<open>@{term"Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))"}\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A1336
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {?A1336, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut1 [OF SeqQuoteP_lemma [of m "Var i" "Var i'" "Var si" "Var li" n sm sm' sn sn']], simp_all, blast)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Zero AND Var i' EQ Zero OR SyntaxN.Ex m (SyntaxN.Ex n (SyntaxN.Ex sm (SyntaxN.Ex sm' (SyntaxN.Ex sn (SyntaxN.Ex sn' (Var m IN Var li AND Var n IN Var li AND SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) AND SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) AND Var i EQ Eats (Var sm) (Var sn) AND Var i' EQ Q_Eats (Var sm') (Var sn'))))))), Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Imp_I Disj_EH Conj_EH)+
        \<comment> \<open>case 1, Var i EQ Zero\<close>
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Zero, Var i' EQ Zero, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex m (SyntaxN.Ex n (SyntaxN.Ex sm (SyntaxN.Ex sm' (SyntaxN.Ex sn (SyntaxN.Ex sn' (Var m IN Var li AND Var n IN Var li AND SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) AND SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) AND Var i EQ Eats (Var sm) (Var sn) AND Var i' EQ Q_Eats (Var sm') (Var sn'))))))), Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "PfP (Q_Subset Zero (Var j'))"])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Zero, Var i' EQ Zero, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset Zero (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {PfP (Q_Subset Zero (Var j')), Var i EQ Zero, Var i' EQ Zero, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex m (SyntaxN.Ex n (SyntaxN.Ex sm (SyntaxN.Ex sm' (SyntaxN.Ex sn (SyntaxN.Ex sn' (Var m IN Var li AND Var n IN Var li AND SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) AND SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) AND Var i EQ Eats (Var sm) (Var sn) AND Var i' EQ Q_Eats (Var sm') (Var sn'))))))), Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: Q_Subs1 [THEN cut1] SeqQuoteP_imp_QuoteP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {PfP (Q_Subset Zero (Var j')), Var i EQ Zero, Var i' EQ Zero, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex m (SyntaxN.Ex n (SyntaxN.Ex sm (SyntaxN.Ex sm' (SyntaxN.Ex sn (SyntaxN.Ex sn' (Var m IN Var li AND Var n IN Var li AND SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) AND SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) AND Var i EQ Eats (Var sm) (Var sn) AND Var i' EQ Q_Eats (Var sm') (Var sn'))))))), Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (force intro: Var_Eq_subst_Iff [THEN Iff_MP_same, THEN rotate3])
        \<comment> \<open>case 2, @{term "Var i EQ Eats (Var sm) (Var sn)"}\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex m (SyntaxN.Ex n (SyntaxN.Ex sm (SyntaxN.Ex sm' (SyntaxN.Ex sn (SyntaxN.Ex sn' (Var m IN Var li AND Var n IN Var li AND SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) AND SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) AND Var i EQ Eats (Var sm) (Var sn) AND Var i' EQ Q_Eats (Var sm') (Var sn'))))))), Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Conj_EH Ex_EH)+
[PROOF STATE]
proof (prove)
goal (13 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Eats (Var sm) (Var sn), Var i' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom sn' \<sharp> PfP (Q_Subset (Var i') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom sn' \<sharp> C
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom sn \<sharp> PfP (Q_Subset (Var i') (Var j'))
 5. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom sn \<sharp> C
 6. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom sm' \<sharp> PfP (Q_Subset (Var i') (Var j'))
 7. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom sm' \<sharp> C
 8. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom sm \<sharp> PfP (Q_Subset (Var i') (Var j'))
 9. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom sm \<sharp> C
 10. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom n \<sharp> PfP (Q_Subset (Var i') (Var j'))
A total of 13 subgoals...
[PROOF STEP]
apply simp_all
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Eats (Var sm) (Var sn), Var i' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "OrdP (Var lj)"])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i EQ Eats (Var sm) (Var sn), Var i' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> OrdP (Var lj)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), Var i' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), Var i' EQ Q_Eats (Var sm') (Var sn'), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var i') (Var j'))
[PROOF STEP]
apply (rule Var_Eq_subst_Iff [THEN Iff_MP_same, THEN rotate3], simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "QuoteP (Var sm) (Var sm')"])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> QuoteP (Var sm) (Var sm')
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (blast intro: QuoteP_I)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "QuoteP (Var sn) (Var sn')"])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> QuoteP (Var sn) (Var sn')
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (blast intro: QuoteP_I)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (rule cut_same [where A = "Eats (Var sm) (Var sn) SUBS Var j"])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Eats (Var sm) (Var sn) SUBS Var j
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Eats (Var sm) (Var sn) SUBS Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (rule Subset_cong [OF _ Refl, THEN Iff_MP_same])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?t1444 EQ Eats (Var sm) (Var sn)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?t1444 SUBS Var j
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Eats (Var sm) (Var sn) SUBS Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (rule AssumeH Mem_Eats_E)+
        \<comment> \<open>Eats case split\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Eats (Var sm) (Var sn) SUBS Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (rule Eats_Subset_E)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), QuoteP (Var i) (Var i'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (rule rotate15)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
[PROOF STEP]
apply (rule MP_same [THEN MP_same])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A1456 IMP ?A1455 IMP PfP (Q_Subset (Q_Eats (Var sm') (Var sn')) (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A1456
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> ?A1455
[PROOF STEP]
apply (rule Q_Subs2 [THEN thin])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> quote_all p V \<subseteq> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (simp add: V_def p_def)
        \<comment> \<open>Eats case 1: @{term "PfP (Q_Subset (Var sm') (Var j'))"}\<close>
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule cut_same [OF exists_HaddP [where j=l and x="Var m" and y="Var lj"]])
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> OrdP (Var lj)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom l \<sharp> (Var m, Var lj)
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex l (HaddP (Var m) (Var lj) (Var l)), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule AssumeH Ex_EH Conj_EH | simp)+
        \<comment> \<open>IH for sm\<close>
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom l \<sharp> PfP (Q_Subset (Var sm') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom l \<sharp> C
 4. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All2_E [where x="Var l", THEN rotate15], simp_all)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var l IN Var k
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp HaddP_Mem_cancel_right_Mem SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sm"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sm) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var sm IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var sm SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sm'"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sm) (Var sm') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var sm IN Var j IMP PfP (Q_Mem (Var sm') (Var j'))) AND (Var sm SUBS Var j IMP PfP (Q_Subset (Var sm') (Var j'))))))))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var si"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sm) (Var sm') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var sm IN Var j IMP PfP (Q_Mem (Var sm') (Var j'))) AND (Var sm SUBS Var j IMP PfP (Q_Subset (Var sm') (Var j')))))))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var m"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var m) (Var lj) (Var l) IMP (Var sm IN Var j IMP PfP (Q_Mem (Var sm') (Var j'))) AND (Var sm SUBS Var j IMP PfP (Q_Subset (Var sm') (Var j'))))))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var j"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var m) (Var lj) (Var l) IMP (Var sm IN Var j IMP PfP (Q_Mem (Var sm') (Var j'))) AND (Var sm SUBS Var j IMP PfP (Q_Subset (Var sm') (Var j')))))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var j'"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var m) (Var lj) (Var l) IMP (Var sm IN Var j IMP PfP (Q_Mem (Var sm') (Var j'))) AND (Var sm SUBS Var j IMP PfP (Q_Subset (Var sm') (Var j'))))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sj"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All lj (SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var m) (Var lj) (Var l) IMP (Var sm IN Var j IMP PfP (Q_Mem (Var sm') (Var j'))) AND (Var sm SUBS Var j IMP PfP (Q_Subset (Var sm') (Var j')))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var lj"], simp)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SeqQuoteP (Var sm) (Var sm') (Var si) (Var m) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var m) (Var lj) (Var l) IMP (Var sm IN Var j IMP PfP (Q_Mem (Var sm') (Var j'))) AND (Var sm SUBS Var j IMP PfP (Q_Subset (Var sm') (Var j'))), HaddP (Var m) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Subset (Var sm') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (blast intro: thin1 Imp_E)
        \<comment> \<open>Eats case 2: @{term "PfP (Q_Mem (Var sn') (Var j'))"}\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule cut_same [OF exists_HaddP [where j=l and x="Var n" and y="Var lj"]])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> OrdP (Var lj)
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom l \<sharp> (Var n, Var lj)
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.Ex l (HaddP (Var n) (Var lj) (Var l)), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule AssumeH Ex_EH Conj_EH | simp)+
        \<comment> \<open>IH for sn\<close>
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> atom l \<sharp> PfP (Q_Mem (Var sn') (Var j'))
 3. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> \<forall>C\<in>{QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, All2 l (Var k) (SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))), QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)}. atom l \<sharp> C
[PROOF STEP]
apply (rule All2_E [where x="Var l", THEN rotate15], simp_all)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> Var l IN Var k
 2. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp HaddP_Mem_cancel_right_Mem SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sn"], simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sn) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sn'"], simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sn) (Var sn') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j'))))))))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var si"], simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sn) (Var sn') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j')))))))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var n"], simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var n) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j'))))))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var j"], simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var n) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j')))))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var j'"], simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var n) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j'))))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var sj"], simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SyntaxN.All lj (SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var n) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j')))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (rule All_E [where x="Var lj"], simp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn'); atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn'); atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn'); atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn'); atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn'); atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn'); atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn'); atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj); atom i \<sharp> (j, j', i', si, ki, sj, kj); atom i' \<sharp> (j, j', si, ki, sj, kj); atom j \<sharp> (j', si, ki, sj, kj); atom j' \<sharp> (si, ki, sj, kj); atom si \<sharp> (ki, sj, kj); atom sj \<sharp> (ki, kj)\<rbrakk> \<Longrightarrow> {SeqQuoteP (Var sn) (Var sn') (Var si) (Var n) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var n) (Var lj) (Var l) IMP (Var sn IN Var j IMP PfP (Q_Mem (Var sn') (Var j'))) AND (Var sn SUBS Var j IMP PfP (Q_Subset (Var sn') (Var j'))), HaddP (Var n) (Var lj) (Var l), QuoteP (Var i) (Var i'), Var sm SUBS Var j, Var sn IN Var j, QuoteP (Var sn) (Var sn'), QuoteP (Var sm) (Var sm'), Var i' EQ Q_Eats (Var sm') (Var sn'), OrdP (Var lj), Var i EQ Eats (Var sm) (Var sn), SeqQuoteP (Var sn) (Var sn') (Var si) (Var n), SeqQuoteP (Var sm) (Var sm') (Var si) (Var m), Var n IN Var li, Var m IN Var li, Var i SUBS Var j, QuoteP (Var j) (Var j'), HaddP (Var li) (Var lj) (Var k), SeqQuoteP (Var j) (Var j') (Var sj) (Var lj), SeqQuoteP (Var i) (Var i') (Var si) (Var li), OrdP (Var k)} \<turnstile> PfP (Q_Mem (Var sn') (Var j'))
[PROOF STEP]
apply (blast intro: Hyp Imp_E)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
{} \<turnstile> SyntaxN.All k (OrdP (Var k) IMP All2 l (Var k) ((SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))(k::=Var l)) IMP SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))))

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
hence p1: "{OrdP(Var k)}
             \<turnstile> (All i' (All si (All li
                  (All j (All j' (All sj (All lj
                        (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP
                         SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP
                         HaddP (Var li) (Var lj) (Var k) IMP
                         (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
                         (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))) (i::= Var i)"
[PROOF STATE]
proof (prove)
using this:
{OrdP (Var k)} \<turnstile> SyntaxN.All i (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))(i::=Var i)
[PROOF STEP]
by (metis All_D)
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))(i::=Var i)

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
have p2: "{OrdP(Var k)}
            \<turnstile> (All si (All li
                (All j (All j' (All sj (All lj
                      (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP
                       SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP
                       HaddP (Var li) (Var lj) (Var k) IMP
                       (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
                       (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))(i'::= Var i')"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))(i'::=Var i')
[PROOF STEP]
apply (rule All_D)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))
[PROOF STEP]
using atoms p1
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
{OrdP (Var k)} \<turnstile> (SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))))(i::=Var i)

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All i' (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))(i'::=Var i')

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
have p3: "{OrdP(Var k)}
            \<turnstile> (All li
              (All j (All j' (All sj (All lj
                    (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP
                     SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP
                     HaddP (Var li) (Var lj) (Var k) IMP
                     (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
                     (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))) (si::= Var si)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))(si::=Var si)
[PROOF STEP]
apply (rule All_D)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))
[PROOF STEP]
using atoms p2
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
{OrdP (Var k)} \<turnstile> (SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))))(i'::=Var i')

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All si (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))(si::=Var si)

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
have p4: "{OrdP(Var k)}
            \<turnstile> (All j (All j' (All sj (All lj
                    (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP
                     SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP
                     HaddP (Var li) (Var lj) (Var k) IMP
                     (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
                     (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))) (li::= ki)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))(li::=ki)
[PROOF STEP]
apply (rule All_D)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))
[PROOF STEP]
using atoms p3
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
{OrdP (Var k)} \<turnstile> (SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))))(si::=Var si)

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All li (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))(li::=ki)

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
have p5: "{OrdP(Var k)}
            \<turnstile> (All j' (All sj (All lj
                (SeqQuoteP (Var i) (Var i') (Var si) ki IMP
                 SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP
                 HaddP ki (Var lj) (Var k) IMP
                 (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
                 (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))) (j::= Var j)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))(j::=Var j)
[PROOF STEP]
apply (rule All_D)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))
[PROOF STEP]
using atoms assms p4
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)
{OrdP (Var k)} \<turnstile> (SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) (Var li) IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP (Var li) (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))))(li::=ki)

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All j (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))(j::=Var j)

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
have p6: "{OrdP(Var k)}
            \<turnstile> (All sj (All lj
                  (SeqQuoteP (Var i) (Var i') (Var si) ki IMP
                   SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP
                   HaddP ki (Var lj) (Var k) IMP
                   (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
                   (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))) (j'::= Var j')"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))(j'::=Var j')
[PROOF STEP]
apply (rule All_D)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))
[PROOF STEP]
using atoms p5
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
{OrdP (Var k)} \<turnstile> (SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))))(j::=Var j)

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All j' (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))(j'::=Var j')

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
have p7: "{OrdP(Var k)}
            \<turnstile> (All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP
                       SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP
                       HaddP ki (Var lj) (Var k) IMP
                       (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
                       (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))) (sj::= Var sj)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))(sj::=Var sj)
[PROOF STEP]
apply (rule All_D)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))
[PROOF STEP]
using atoms p6
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
{OrdP (Var k)} \<turnstile> (SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))))(j'::=Var j')

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All sj (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))(sj::=Var sj)

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
have p8: "{OrdP(Var k)}
            \<turnstile> (SeqQuoteP (Var i) (Var i') (Var si) ki IMP
               SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP
               HaddP ki (Var lj) (Var k) IMP
               (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
               (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))) (lj::= kj)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))(lj::=kj)
[PROOF STEP]
apply (rule All_D)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))
[PROOF STEP]
using atoms p7
[PROOF STATE]
proof (prove)
using this:
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)
{OrdP (Var k)} \<turnstile> (SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))))(sj::=Var sj)

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SyntaxN.All lj (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))(lj::=kj)

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
hence p9: "{OrdP(Var k)}
             \<turnstile> SeqQuoteP (Var i) (Var i') (Var si) ki IMP
               SeqQuoteP (Var j) (Var j') (Var sj) kj IMP
               HaddP ki kj (Var k) IMP
               (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
               (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))"
[PROOF STATE]
proof (prove)
using this:
{OrdP (Var k)} \<turnstile> (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))(lj::=kj)

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) kj IMP HaddP ki kj (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
using assms atoms
[PROOF STATE]
proof (prove)
using this:
{OrdP (Var k)} \<turnstile> (SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) (Var lj) IMP HaddP ki (Var lj) (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j'))))(lj::=kj)
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)

goal (1 subgoal):
 1. {OrdP (Var k)} \<turnstile> SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) kj IMP HaddP ki kj (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
{OrdP (Var k)} \<turnstile> SeqQuoteP (Var i) (Var i') (Var si) ki IMP SeqQuoteP (Var j) (Var j') (Var sj) kj IMP HaddP ki kj (Var k) IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
have p10:  "{ HaddP ki kj (Var k),
               SeqQuoteP (Var i) (Var i') (Var si) ki,
               SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k) }
             \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND
               (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
apply (rule MP_same [THEN MP_same [THEN MP_same]])
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)} \<turnstile> ?A2 IMP ?A1 IMP ?A IMP (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
 2. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)} \<turnstile> ?A2
 3. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)} \<turnstile> ?A1
 4. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)} \<turnstile> ?A
[PROOF STEP]
apply (rule p9 [THEN thin])
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. {OrdP (Var k)} \<subseteq> {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)}
 2. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)} \<turnstile> SeqQuoteP (Var i) (Var i') (Var si) ki
 3. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)} \<turnstile> SeqQuoteP (Var j) (Var j') (Var sj) kj
 4. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)} \<turnstile> HaddP ki kj (Var k)
[PROOF STEP]
apply (auto intro: MP_same)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
{HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj, OrdP (Var k)} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))

goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
apply (rule cut_same [OF exists_HaddP [where j=k and x=ki and y=kj]])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. {SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> OrdP kj
 2. atom k \<sharp> (ki, kj)
 3. {SyntaxN.Ex k (HaddP ki kj (Var k)), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
apply (metis SeqQuoteP_imp_OrdP thin1)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. atom k \<sharp> (ki, kj)
 2. {SyntaxN.Ex k (HaddP ki kj (Var k)), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
[PROOF STEP]
prefer 2
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. {SyntaxN.Ex k (HaddP ki kj (Var k)), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
 2. atom k \<sharp> (ki, kj)
[PROOF STEP]
apply (rule Ex_E)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
 2. atom k \<sharp> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
 3. \<forall>C\<in>{SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj}. atom k \<sharp> C
 4. atom k \<sharp> (ki, kj)
[PROOF STEP]
apply (rule p10 [THEN cut4])
[PROOF STATE]
proof (prove)
goal (7 subgoals):
 1. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> HaddP ki kj (Var k)
 2. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> SeqQuoteP (Var i) (Var i') (Var si) ki
 3. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> SeqQuoteP (Var j) (Var j') (Var sj) kj
 4. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> OrdP (Var k)
 5. atom k \<sharp> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
 6. \<forall>C\<in>{SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj}. atom k \<sharp> C
 7. atom k \<sharp> (ki, kj)
[PROOF STEP]
using assms atoms
[PROOF STATE]
proof (prove)
using this:
atom i \<sharp> (j, j', i', si, ki, sj, kj)
atom i' \<sharp> (j, j', si, ki, sj, kj)
atom j \<sharp> (j', si, ki, sj, kj)
atom j' \<sharp> (si, ki, sj, kj)
atom si \<sharp> (ki, sj, kj)
atom sj \<sharp> (ki, kj)
atom lj \<sharp> (li, l, i, j, j', i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom li \<sharp> (l, j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom l \<sharp> (j, j', i, i', si, ki, sj, kj, i, i', k, m, n, sm, sm', sn, sn')
atom k \<sharp> (j, j', i, i', si, ki, sj, kj, m, n, sm, sm', sn, sn')
atom m \<sharp> (j, j', i, i', si, ki, sj, kj, n, sm, sm', sn, sn')
atom n \<sharp> (j, j', i, i', si, ki, sj, kj, sm, sm', sn, sn')
atom sm \<sharp> (j, j', i, i', si, ki, sj, kj, sm', sn, sn')
atom sm' \<sharp> (j, j', i, i', si, ki, sj, kj, sn, sn')
atom sn \<sharp> (j, j', i, i', si, ki, sj, kj, sn')
atom sn' \<sharp> (j, j', i, i', si, ki, sj, kj)

goal (7 subgoals):
 1. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> HaddP ki kj (Var k)
 2. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> SeqQuoteP (Var i) (Var i') (Var si) ki
 3. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> SeqQuoteP (Var j) (Var j') (Var sj) kj
 4. {HaddP ki kj (Var k), SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> OrdP (Var k)
 5. atom k \<sharp> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))
 6. \<forall>C\<in>{SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj}. atom k \<sharp> C
 7. atom k \<sharp> (ki, kj)
[PROOF STEP]
apply (auto intro: HaddP_OrdP SeqQuoteP_imp_OrdP [THEN cut1])
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
{SeqQuoteP (Var i) (Var i') (Var si) ki, SeqQuoteP (Var j) (Var j') (Var sj) kj} \<turnstile> (Var i IN Var j IMP PfP (Q_Mem (Var i') (Var j'))) AND (Var i SUBS Var j IMP PfP (Q_Subset (Var i') (Var j')))

goal:
No subgoals!
[PROOF STEP]
qed