Step * 2 of Lemma omralist_cases


1. OCMon
2. CDRng
3. ∀Q:|oal(g↓oset;r↓+gp)| ⟶ ℙ
     (Q[[]]
      (∀ws:|oal(g↓oset;r↓+gp)|. ∀x:|(g↓oset)|. ∀y:|r↓+gp|.
           ((↑before(x;map(λx.(fst(x));ws)))  (y e ∈ |r↓+gp|))  Q[[<x, y> ws]]))
      {∀ws:|oal(g↓oset;r↓+gp)|. Q[ws]})
⊢ ∀Q:|omral(g;r)| ⟶ ℙ
    (Q[[]]
     (∀ws:|omral(g;r)|. ∀x:|g|. ∀y:|r|.  ((↑before(x;map(λx.(fst(x));ws)))  (y 0 ∈ |r|))  Q[[<x, y> ws]]))
     {∀ws:|omral(g;r)|. Q[ws]})
BY
This is too fiddly. Need better way of doing this 
AbReduceIf (\e t.not is_term `oalist` (subterm 1)) (-1) 
THEN Unfold `omralist` THEN Trivial }


Latex:


Latex:

1.  g  :  OCMon
2.  r  :  CDRng
3.  \mforall{}Q:|oal(g\mdownarrow{}oset;r\mdownarrow{}+gp)|  {}\mrightarrow{}  \mBbbP{}
          (Q[[]]
          {}\mRightarrow{}  (\mforall{}ws:|oal(g\mdownarrow{}oset;r\mdownarrow{}+gp)|.  \mforall{}x:|(g\mdownarrow{}oset)|.  \mforall{}y:|r\mdownarrow{}+gp|.
                      ((\muparrow{}before(x;map(\mlambda{}x.(fst(x));ws)))  {}\mRightarrow{}  (\mneg{}(y  =  e))  {}\mRightarrow{}  Q[[<x,  y>  /  ws]]))
          {}\mRightarrow{}  \{\mforall{}ws:|oal(g\mdownarrow{}oset;r\mdownarrow{}+gp)|.  Q[ws]\})
\mvdash{}  \mforall{}Q:|omral(g;r)|  {}\mrightarrow{}  \mBbbP{}
        (Q[[]]
        {}\mRightarrow{}  (\mforall{}ws:|omral(g;r)|.  \mforall{}x:|g|.  \mforall{}y:|r|.
                    ((\muparrow{}before(x;map(\mlambda{}x.(fst(x));ws)))  {}\mRightarrow{}  (\mneg{}(y  =  0))  {}\mRightarrow{}  Q[[<x,  y>  /  ws]]))
        {}\mRightarrow{}  \{\mforall{}ws:|omral(g;r)|.  Q[ws]\})


By


Latex:
\%  This  is  too  fiddly.  Need  better  way  of  doing  this  \% 
AbReduceIf  (\mbackslash{}e  t.not  is\_term  `oalist`  (subterm  t  1))  (-1) 
THEN  Unfold  `omralist`  0  THEN  Trivial




Home Index