| Who Cites d-realizes2? |
|
d-realizes2 | Def D realizes2 es.P(es) == w:World, p:FairFifo. PossibleWorld(D;w)  P(ES(w)) |
|
w-es | Def ES(the_w;p)
Def == <E
Def == ,product-deq(Id; ;IdDeq;NatDeq)
Def == ,( i,x. vartype(i;x))
Def == ,( i,a. V(i;locl(a)))
Def == ,the_w.M
Def == ,
Def == ,( e.loc(e))
Def == ,( e.kind(e))
Def == ,( e.val(e))
Def == ,( x,e. (x when e))
Def == ,( x,e. (x after e))
Def == ,( l,e. sends(l;e))
Def == ,( e.sender(e))
Def == ,( e.index(e))
Def == ,( e.first(e))
Def == ,( e.pred(e))
Def == ,( e,e'. e <c e')
Def == ,world_DASH_event_DASH_system{1:l, i:l}(the_w,p)
Def == , > |
|
possible-world | Def PossibleWorld(D;w)
Def == FairFifo
Def == & ( i,x:Id. vartype(i;x) r M(i).ds(x))
Def == & & ( i:Id, a:Action(i).
Def == & & ( isnull(a)  (valtype(i;a) r M(i).da(kind(a))))
Def == & & ( l:IdLnk, tg:Id. (w.M(l,tg)) r M(source(l)).da(rcv(l; tg)))
Def == & & ( i,x:Id. M(i).init(x,s(i;0).x))
Def == & & ( i:Id, t: .
Def == & & ( isnull(a(i;t))
Def == & & (
Def == & & (( islocal(kind(a(i;t)))
Def == & & ((
Def == & & ((M(i).pre(act(kind(a(i;t))), x.s(i;t).x,val(a(i;t))))
Def == & & (& ( x:Id.
Def == & & (& (M(i).ef(kind(a(i;t)),x, x.s(i;t).x,val(a(i;t)),s(i;t+1).x))
Def == & & (& ( l:IdLnk.
Def == & & (& (M(i).send(kind(a(i;t));l; x.
Def == & & (& (s(i;t).x;val(a(i;t));withlnk(l;m(i;t));i))
Def == & & (& ( x:Id.
Def == & & (& ( M(i).frame(kind(a(i;t)) affects x)
Def == & & (& (
Def == & & (& (s(i;t).x = s(i;t+1).x M(i).ds(x))
Def == & & (& ( l:IdLnk, tg:Id.
Def == & & (& ( M(i).sframe(kind(a(i;t)) sends <l,tg>)
Def == & & (& (
Def == & & (& (w-tagged(tg; onlnk(l;m(i;t))) = nil Msg List))
Def == & & ( i,a:Id, t: .
Def == & & ( t': .
Def == & & (t t'
Def == & & (&  isnull(a(i;t')) & kind(a(i;t')) = locl(a)
Def == & & (& a declared in M(i)
Def == & & (& unsolvable M(i).pre(a, x.s(i;t').x)) |
|
fair-fifo | Def FairFifo
Def == ( i:Id, t: , l:IdLnk. source(l) = i  onlnk(l;m(i;t)) = nil Msg List)
Def == & ( i:Id, t: .
Def == & ( isnull(a(i;t))
Def == & (
Def == & (( x:Id. s(i;t+1).x = s(i;t).x vartype(i;x))
Def == & (& m(i;t) = nil Msg List)
Def == & ( i:Id, t: , l:IdLnk.
Def == & ( isrcv(l;a(i;t))
Def == & (
Def == & (destination(l) = i
Def == & (& ||queue(l;t)|| 1 & hd(queue(l;t)) = msg(a(i;t)) Msg)
Def == & ( l:IdLnk, t: .
Def == & ( t': .
Def == & (t t' & isrcv(l;a(destination(l);t')) queue(l;t') = nil Msg List) |
|
world | Def World
Def == T:Id Id Type
Def == TA:Id Id Type
Def == M:IdLnk Id Type
Def == (i:Id    (x:Id T(i,x))) (i:Id    action(w-action-dec(TA;M;i)))
Def == (i:Id    ({m:Msg(M)| source(mlnk(m)) = i } List)) Top |
| | Thm* World Type{i'} |
|
w-causl | Def e <c e' == e e,e'. e <loc e' isrcv(kind(e')) & e = sender(e') E^+ e' |
|
w-pred | Def pred(e)
Def == if isnull(a(loc(e);time(e)-1)) pred(<loc(e),time(e)-1>)
Def == else <loc(e),time(e)-1> fi
Def (recursive) |
|
w-first | Def first(e)
Def == if time(e)= 0 true
Def == i; isnull(a(loc(e);time(e)-1)) first(<loc(e),time(e)-1>)
Def == else false fi
Def (recursive) |
|
w-index | Def index(e)
Def == ||rcvs(lnk(kind(e));time(e))||-||snds(lnk(kind(e));time(sender(e)))|| |
|
w-sender | Def sender(e) == <source(lnk(kind(e))),mu( t.match(lnk(kind(e));t;time(e)))> |
|
w-sends | Def sends(l;e) == onlnk(l;m(loc(e);time(e))) |
|
w-after | Def (x after e) == s(1of(e);2of(e)+1).x |
|
w-when | Def (x when e) == s(1of(e);2of(e)).x |
|
w-eval | Def val(e) == val(act(e)) |
|
w-ekind | Def kind(e) == kind(act(e)) |
|
w-locl | Def e <loc e' == loc(e) = loc(e') Id & time(e)<time(e') |
|
w-loc | Def loc(e) == 1of(e) |
|
w-Msg | Def Msg == Msg(w.M) |
|
w-valtype | Def valtype(i;a) == kindcase(kind(a);a.w.TA(i,a);l,tg.w.M(l,tg)) |
|
w-action | Def Action(i) == action(w-action-dec(w.TA;w.M;i)) |
|
w-M | Def w.M == 1of(2of(2of(w))) |
|
ma-npre | Def unsolvable M.pre(a,s)
Def == P != 1of(2of(2of(2of(M))))(a) ==> v:M.da(locl(a)). P(s,v) |
|
ma-decla | Def a declared in M == locl(a) dom(1of(2of(M))) |
|
locl | Def locl(a) == inr(a) |
| | Thm* a:Id. locl(a) Knd |
|
w-V | Def V(i;k) == kindcase(k;a.1of(2of(w))(i,a);l,tg.1of(2of(2of(w)))(l,tg)) |
|
w-vartype | Def vartype(i;x) == w.T(i,x) |
|
w-queue | Def queue(l;t) == nth_tl(||rcvs(l;t)||;snds(l;t)) |
|
w-match | Def match(l;t;t')
Def == (||snds(l;t)|| ||rcvs(l;t')||)
Def == (||rcvs(l;t')||< ||snds(l;t)||+||onlnk(l;m(source(l);t))||) |
|
w-snds | Def snds(l;t) == concat(map( t1.m(l;t1);upto(t))) |
|
w-ml | Def m(l;t) == onlnk(l;m(source(l);t)) |
|
w-onlnk | Def onlnk(l;mss) == filter( ms.mlnk(ms) = l;mss) |
|
w-tagged | Def w-tagged(tg; mss) == filter( ms.mtag(ms) = tg;mss) |
|
ma-sframe | Def M.sframe(k sends <l,tg>)
Def == L != 1of(2of(2of(2of(2of(2of(2of(2of(
Def == L != 1of(M))))))))(<l,tg>) ==> deq-member(KindDeq;k;L) |
|
ma-ef | Def M.ef(k,x,s,v,w)
Def == E != 1of(2of(2of(2of(2of(M)))))(<k,x>) ==> w = E(s,v) M.ds(x) |
|
ma-ds | Def M.ds(x) == 1of(M)(x)?Top |
|
ma-frame | Def M.frame(k affects x)
Def == L != 1of(2of(2of(2of(2of(2of(2of(M)))))))(x) ==> deq-member(KindDeq;k;L) |
|
w-withlnk | Def withlnk(l;mss) == mapfilter( ms.2of(ms); ms.mlnk(ms) = l;mss) |
|
ma-send | Def M.send(k;l;s;v;ms;i)
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> ms
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> =
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> if source(l) = i
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> if concat(map( tgf.
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> if map( x.
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> if <1of(tgf),x>;2of(tgf)
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> if <1of(tgf),x>;(s
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> if <1of(tgf),x>;,v));L))
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> else nil fi
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> (tg:Id
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> ( if source(l) = i
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> ( if M.da(rcv(l; tg))
Def == L != 1of(2of(2of(2of(2of(2of(M))))))(<k,l>) ==> ( else Top fi) List |
|
ma-pre | Def M.pre(a,s,v) == P != 1of(2of(2of(2of(M))))(a) ==> P(s,v) |
|
ma-init | Def M.init(x,v) == x0 != 1of(2of(2of(M)))(x) ==> v = x0 1of(M)(x)?Void |
|
ma-da | Def M.da(a) == 1of(2of(M))(a)?Top |
|
w-rcvs | Def rcvs(l;t) == filter( a.isrcv(l;a);map( t1.a(destination(l);t1);upto(t))) |
|
w-isrcvl | Def isrcv(l;a) ==  isnull(a) isrcv(kind(a)) lnk(kind(a)) = l |
|
w-action-dec | Def w-action-dec(TA;M;i)(k)
Def == kindcase(k;a.TA(i,a);l,tg.if destination(l) = i M(l,tg) else Void fi) |
|
Kind-deq | Def KindDeq == union-deq(IdLnk Id;Id;product-deq(IdLnk;Id;IdLnkDeq;IdDeq);IdDeq) |
|
eq_lnk | Def a = b == eqof(IdLnkDeq)(a,b) |
| | Thm* a,b:IdLnk. a = b  |
|
eq_id | Def a = b == eqof(IdDeq)(a,b) |
| | Thm* a,b:Id. a = b  |
|
idlnk-deq | Def IdLnkDeq == product-deq(Id;Id ;IdDeq;product-deq(Id; ;IdDeq;NatDeq)) |
|
id-deq | Def IdDeq == product-deq(Atom; ;AtomDeq;NatDeq) |
|
nat-deq | Def NatDeq == < a,b. a= b,nat_DASH_deq_DASH_aux{1:l}> |
|
w-E | Def E == {p:(Id )|  isnull(a(1of(p);2of(p))) } |
|
action | Def action(dec) == Unit+(k:Knd dec(k)) |
| | Thm* dec:(Knd Type). action(dec) Type |
|
Knd | Def Knd == (IdLnk Id)+Id |
| | Thm* Knd Type |
|
Msg | Def Msg(M) == l:IdLnk t:Id M(l,t) |
| | Thm* M:(IdLnk Id Type). Msg(M) Type |
|
IdLnk | Def IdLnk == Id Id  |
| | Thm* IdLnk Type |
|
Id | Def Id == Atom  |
| | Thm* Id Type |
|
nat | Def == {i: | 0 i } |
| | Thm* Type |
|
product-deq | Def product-deq(A;B;a;b) == <proddeq(a;b),prod-deq(A;B;a;b)> |
|
w-s | Def s(i;t).x == 1of(2of(2of(2of(w))))(i,t,x) |
|
d-m | Def M(i) == D(i) |
|
ge | Def i j == j i |
| | Thm* i,j: . (i j) Prop |
|
le | Def A B == B<A |
| | Thm* i,j: . (i j) Prop |
|
not | Def A == A  False |
| | Thm* A:Prop. ( A) Prop |
|
w-act | Def act(e) == a(1of(e);2of(e)) |
|
w-a | Def a(i;t) == 1of(2of(2of(2of(2of(w)))))(i,t) |
|
w-msg | Def msg(a) == msg(lnk(kind(a));tag(kind(a));val(a)) |
|
w-kind | Def kind(a) == 1of(outr(a)) |
|
w-isnull | Def isnull(a) == isl(a) |
|
prod-deq | Def prod-deq(A;B;a;b)
Def == ( A,B,a,b,p,q. q/q1,q2.
Def == (p/p1,p2.
Def == (b/eq,b1.
Def == (a/e1,a1.
Def == (( %1.%1
Def == (( %1.(< %.<( %1.%1(p1,q1)/%4,%5. %4(( %1.%1)(( %1.*)(*))))(a1)
Def == (( %1.(< %.,( %1.%1(p2,q2)/%4,%5. %4(( %1.%1)(( %1.*)(*))))(b1)>
Def == (( %1.(, %.%/%1,%2. *>))
Def == ((( %1.%1.2)
Def == (((( %1.%1
Def == (((( %1.(<p1,p2> = <q1,q2> A B
Def == (((( %1.,<p1,p2> = <q1,q2> A B
Def == (((( %1., ((e1(p1,q1)) (eq(p2,q2)))
Def == (((( %1., (e1(p1,q1)) & (eq(p2,q2))
Def == (((( %1.,( %1.%1)(( %1.< %2.%2, %2.%2>)(*))
Def == (((( %1.,( %1.%1)
Def == (((( %1.,(( %1.%1(e1(p1,q1),eq(p2,q2)))
Def == (((( %1.,(( p,q. InjCase(q; x. InjCase(p
Def == (((( %1.,(( p,q. InjCase(q; x. InjCase; x. < %.<*,*>, %.*>
Def == (((( %1.,(( p,q. InjCase(q; x. InjCase; y. < %.<any(%),*>
Def == (((( %1.,(( p,q. InjCase(q; x. InjCase; y. , %.%/%1,%2. any(%1)>)
Def == (((( %1.,(( p,q. ; y.
Def == (((( %1.,(( p,q. InjCase(p
Def == (((( %1.,(( p,q. InjCase; x. < %.<*,any(%)>, %.%/%1,%2. any(%2)>
Def == (((( %1.,(( p,q. InjCase; y. < %.<any(%),any(%)>
Def == (((( %1.,(( p,q. InjCase; y. , %.%/%1,%2. any(%2)>))))))
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.(%5
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.((( %4.%4)
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.(((( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.((((%5
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.(((((( %4.%4)
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.((((((( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.(((((((%6(( %4.%4)(( %4.%4)(%3))))
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.(((((((%))))
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.((((%2))))
Def == (((( P1,P2,Q1,Q2,%,%1. < %2.< %3.(%1)
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.(%5
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.((( %4.%4)
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.(((( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.((((%6
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.(((((( %4.%4)
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.((((((( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.(((((((%6(( %4.%4)(( %4.%4)(%3))))
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.(((((((%1))))
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.((((%2))))
Def == (((( P1,P2,Q1,Q2,%,%1. < %2., %3.(%)>
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.(%6
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.((( %4.%4)
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.(((( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.((((%5
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.(((((( %4.%4)
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.((((((( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.(((((((%5(( %4.%4)(( %4.%4)(%3))))
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.(((((((%))))
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.((((%2))))
Def == (((( P1,P2,Q1,Q2,%,%1. , %2.< %3.(%1)
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.(%6
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.((( %4.%4)
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.(((( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.((((%6
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.(((((( %4.%4)
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.((((((( %4.%4/%5,%6.
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.(((((((%5(( %4.%4)(( %4.%4)(%3))))
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.(((((((%1))))
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.((((%2))))
Def == (((( P1,P2,Q1,Q2,%,%1. , %2., %3.(%)>>))))
Def == (A
Def == ,B
Def == ,a
Def == ,b) |
|
fpf-val | Def z != f(x) ==> P(a;z) == x dom(f)  P(x;f(x)) |
|
assert | Def b == if b True else False fi |
| | Thm* b: . b Prop |
|
w-m | Def m(i;t) == 1of(2of(2of(2of(2of(2of(w))))))(i,t) |
|
w-val | Def val(a) == 2of(outr(a)) |
|
kindcase | Def kindcase(k;a.f(a);l,t.g(l;t))
Def == if islocal(k) f(act(k)) else g(lnk(k);tag(k)) fi |
| | Thm* B:Type, k:Knd, f:(Id B), g:(IdLnk Id B).
Thm* kindcase(k;a.f(a);l,t.g(l,t)) B |
|
actof | Def act(k) == outr(k) |
| | Thm* k:Knd. islocal(k)  act(k) Id |
|
islocal | Def islocal(k) ==  isl(k) |
| | Thm* k:Knd. islocal(k)  |
|
rcv | Def rcv(l; tg) == inl(<l,tg>) |
| | Thm* l:IdLnk, tg:Id. rcv(l; tg) Knd |
|
lsrc | Def source(l) == 1of(l) |
| | Thm* l:IdLnk. source(l) Id |
|
ldst | Def destination(l) == 1of(2of(l)) |
| | Thm* l:IdLnk. destination(l) Id |
|
hd | Def hd(l) == Case of l; nil "?" ; h.t h |
| | Thm* A:Type, l:A List. ||l|| 1  hd(l) A |
|
length | Def ||as|| == Case of as; nil 0 ; a.as' ||as'||+1 (recursive) |
| | Thm* A:Type, l:A List. ||l||  |
| | Thm* ||nil||  |
|
top | Def Top == Void given Void |
| | Thm* Top Type |
|
mlnk | Def mlnk(m) == 1of(m) |
| | Thm* M:(IdLnk Id Type), m:Msg(M). mlnk(m) IdLnk |
| | Thm* the_es:ES, m:Msg. mlnk(m) IdLnk |
|
isrcv | Def isrcv(k) == isl(k) |
| | Thm* k:Knd. isrcv(k)  |
|
rel_plus | Def R^+(x,y) == n: . x R^n y |
| | Thm* T:Type, R:(T T Type). R^+ T T Type |
|
w-time | Def time(e) == 2of(e) |
|
rel_exp | Def R^n == if n= 0 x,y. x = y T else x,y. z:T. (x R z) & (z R^n-1 y) fi
Def (recursive) |
| | Thm* n: , T:Type, R:(T T Prop). R^n T T Prop |
|
upto | Def upto(n) == if n= 0 nil else upto(n-1) @ [(n-1)] fi (recursive) |
| | Thm* n: . upto(n) n List |
|
eq_int | Def i= j == if i=j true ; false fi |
| | Thm* i,j: . (i= j)  |
|
lnk | Def lnk(k) == 1of(outl(k)) |
| | Thm* k:Knd. isrcv(k)  lnk(k) IdLnk |
|
mu | Def mu(f) == if f(0) 0 else mu( x.f(x+1))+1 fi (recursive) |
| | Thm* f:(   ). ( n: . f(n))  mu(f)  |
|
proddeq | Def proddeq(a;b)(p,q) == (1of(a)(1of(p),1of(q))) (1of(b)(2of(p),2of(q))) |
| | Thm* A,B:Type, a:EqDecider(A), b:EqDecider(B). proddeq(a;b) A B A B   |
|
mtag | Def mtag(m) == 1of(2of(m)) |
| | Thm* M:(IdLnk Id Type), m:Msg(M). mtag(m) Id |
|
fpf-cap | Def f(x)?z == if x dom(f) f(x) else z fi |
|
w-TA | Def w.TA == 1of(2of(w)) |
|
tagof | Def tag(k) == 2of(outl(k)) |
| | Thm* k:Knd. isrcv(k)  tag(k) Id |
|
fpf-ap | Def f(x) == 2of(f)(x) |
|
pi2 | Def 2of(t) == t.2 |
| | Thm* A:Type, B:(A Type), p:(a:A B(a)). 2of(p) B(1of(p)) |
|
w-T | Def w.T == 1of(w) |
|
fpf-dom | Def x dom(f) == deq-member(eq;x;1of(f)) |
|
deq-member | Def deq-member(eq;x;L) == reduce( a,b. eqof(eq)(a,x)  b;false ;L) |
|
union-deq | Def union-deq(A;B;a;b) == <sumdeq(a;b),sum-deq(A;B;a;b)> |
|
eqof | Def eqof(d) == 1of(d) |
| | Thm* T:Type, d:EqDecider(T). eqof(d) T T   |
|
sumdeq | Def sumdeq(a;b)(p,q)
Def == InjCase(p; pa. InjCase(q; qa. 1of(a)(pa,qa); qb. false ); pb.
Def == InjCase(q; qa. false ; qb. 1of(b)(pb,qb))) |
| | Thm* A,B:Type, a:EqDecider(A), b:EqDecider(B). sumdeq(a;b) (A+B) (A+B)   |
|
pi1 | Def 1of(t) == t.1 |
| | Thm* A:Type, B:(A Type), p:(a:A B(a)). 1of(p) A |
|
atom-deq | Def AtomDeq == < a,b. a= b Atom,atom_DASH_deq_DASH_aux{1:l}> |
|
outr | Def outr(x) == InjCase(x; y. "???"; z. z) |
| | Thm* A,B:Type, x:A+B.  isl(x)  outr(x) B |
|
isl | Def isl(x) == InjCase(x; y. true ; z. false ) |
| | Thm* A,B:Type, x:A+B. isl(x)  |
|
mapfilter | Def mapfilter(f;P;L) == map(f;filter(P;L)) |
| | Thm* T:Type, P:(T  ), T':Type, f:({x:T| P(x) } T'), L:T List.
Thm* mapfilter(f;P;L) T' List |
|
filter | Def filter(P;l) == reduce( a,v. if P(a) [a / v] else v fi;nil;l) |
| | Thm* T:Type, P:(T  ), l:T List. filter(P;l) T List |
|
map | Def map(f;as) == Case of as; nil nil ; a.as' [(f(a)) / map(f;as')]
Def (recursive) |
| | Thm* A,B:Type, f:(A B), l:A List. map(f;l) B List |
| | Thm* A,B:Type, f:(A B), l:A List . map(f;l) B List |
|
concat | Def concat(ll) == reduce( l,l'. l @ l';nil;ll) |
| | Thm* T:Type, ll:(T List) List. concat(ll) T List |
|
nth_tl | Def nth_tl(n;as) == if n 0 as else nth_tl(n-1;tl(as)) fi (recursive) |
| | Thm* A:Type, as:A List, i: . nth_tl(i;as) A List |
|
le_int | Def i j ==  j< i |
| | Thm* i,j: . (i j)  |
|
bnot | Def  b == if b false else true fi |
| | Thm* b: .  b  |
|
band | Def p q == if p q else false fi |
| | Thm* p,q: . (p q)  |
|
nat_plus | Def  == {i: | 0<i } |
| | Thm*  Type |
|
outl | Def outl(x) == InjCase(x; y. y; z. "???") |
| | Thm* A,B:Type, x:A+B. isl(x)  outl(x) A |
|
lt_int | Def i< j == if i<j true ; false fi |
| | Thm* i,j: . (i< j)  |
|
eq_atom | Def x= y Atom == if x=y Atom true ; false fi |
| | Thm* x,y:Atom. x= y Atom  |
|
reduce | Def reduce(f;k;as) == Case of as; nil k ; a.as' f(a,reduce(f;k;as'))
Def (recursive) |
| | Thm* A,B:Type, f:(A B B), k:B, as:A List. reduce(f;k;as) B |
|
bor | Def p  q == if p true else q fi |
| | Thm* p,q: . (p  q)  |
|
append | Def as @ bs == Case of as; nil bs ; a.as' [a / (as' @ bs)] (recursive) |
| | Thm* T:Type, as,bs:T List. (as @ bs) T List |
|
tl | Def tl(l) == Case of l; nil nil ; h.t t |
| | Thm* A:Type, l:A List. tl(l) A List |
|
sum-deq | Def sum-deq(A;B;a;b)
Def == ( A,B,a,b,p,q.
Def == (InjCase(q; x. InjCase(p
Def == (InjCase(q; x. InjCase; x1. b/eq,b1.
Def == (InjCase(q; x. InjCase; x1. a/e1,a1.
Def == (InjCase(q; x. InjCase; x1. < %.( %1.%1(x1,x)/%4,%5.
Def == (InjCase(q; x. InjCase; x1. < %.(%4
Def == (InjCase(q; x. InjCase; x1. < %.((( %1.%1)
Def == (InjCase(q; x. InjCase; x1. < %.(((( %1.*)
Def == (InjCase(q; x. InjCase; x1. < %.((((( %1.%1(x))
Def == (InjCase(q; x. InjCase; x1. < %.(((((( %1.%1(x1))
Def == (InjCase(q; x. InjCase; x1. < %.((((((( %1.%1(B))
Def == (InjCase(q; x. InjCase; x1. < %.(((((((( %1.%1(A))
Def == (InjCase(q; x. InjCase; x1. < %.(((((((( A,B,x1,x,%. ( %1.%1)
Def == (InjCase(q; x. InjCase; x1. < %.(((((((( A,B,x1,x,%. (( %1.( %2.*)(*))
Def == (InjCase(q; x. InjCase; x1. < %.(((((((( A,B,x1,x,%. ((%))))))))))
Def == (InjCase(q; x. InjCase; x1. < %.(a1)
Def == (InjCase(q; x. InjCase; x1. , %.*>
Def == (InjCase(q; x. InjCase; y. b/eq,b1.
Def == (InjCase(q; x. InjCase; y. a/e1,a1.
Def == (InjCase(q; x. InjCase; y. < %.( %1.any((%1(*))))
Def == (InjCase(q; x. InjCase; y. < %.(( %1.%1(x))
Def == (InjCase(q; x. InjCase; y. < %.((( %1.%1(y))
Def == (InjCase(q; x. InjCase; y. < %.(((( %1.%1(B))
Def == (InjCase(q; x. InjCase; y. < %.((((( %1.%1(A))
Def == (InjCase(q; x. InjCase; y. < %.((((( A,B,y,x,%.
Def == (InjCase(q; x. InjCase; y. < %.(((((( %1.
Def == (InjCase(q; x. InjCase; y. < %.((((((InjCase(%1
Def == (InjCase(q; x. InjCase; y. < %.((((((InjCase; %2. any(%2)
Def == (InjCase(q; x. InjCase; y. < %.((((((InjCase; %3. ( %4.any(%4))
Def == (InjCase(q; x. InjCase; y. < %.((((((InjCase; %3. (( %4.( %5.( %6.
Def == (InjCase(q; x. InjCase; y. < %.((((((InjCase; %3. (( %4.( %5.(any(%6))
Def == (InjCase(q; x. InjCase; y. < %.((((((InjCase; %3. (( %4.( %5.(*))
Def == (InjCase(q; x. InjCase; y. < %.((((((InjCase; %3. (( %4.(*))
Def == (InjCase(q; x. InjCase; y. < %.((((((InjCase; %3. ((%))))
Def == (InjCase(q; x. InjCase; y. < %.((((((( %1.%1)(inr( %.*))))))))
Def == (InjCase(q; x. InjCase; y. , %.*>)
Def == (; y.
Def == (InjCase(p
Def == (InjCase; x. b/eq,b1.
Def == (InjCase; x. a/e1,a1.
Def == (InjCase; x. < %.( %1.any((%1(*))))
Def == (InjCase; x. < %.(( %1.%1(y))
Def == (InjCase; x. < %.((( %1.%1(x))
Def == (InjCase; x. < %.(((( %1.%1(B))
Def == (InjCase; x. < %.((((( %1.%1(A))
Def == (InjCase; x. < %.((((( A,B,x,y,%. ( %1.InjCase(%1
Def == (InjCase; x. < %.((((( A,B,x,y,%. ( %1.InjCase; %2. any(%2)
Def == (InjCase; x. < %.((((( A,B,x,y,%. ( %1.InjCase; %3. ( %4.any(%4))
Def == (InjCase; x. < %.((((( A,B,x,y,%. ( %1.InjCase; %3. (( %4.( %5.( %6.
Def == (InjCase; x. < %.((((( A,B,x,y,%. ( %1.InjCase; %3. (( %4.( %5.(any(%6))
Def == (InjCase; x. < %.((((( A,B,x,y,%. ( %1.InjCase; %3. (( %4.( %5.(*))
Def == (InjCase; x. < %.((((( A,B,x,y,%. ( %1.InjCase; %3. (( %4.(*))
Def == (InjCase; x. < %.((((( A,B,x,y,%. ( %1.InjCase; %3. ((%))))
Def == (InjCase; x. < %.((((( A,B,x,y,%. (( %1.%1)(inr( %.*))))))))
Def == (InjCase; x. , %.*>
Def == (InjCase; y1. b/eq,b1.
Def == (InjCase; y1. a/e1,a1.
Def == (InjCase; y1. < %.( %1.%1(y1,y)/%4,%5.
Def == (InjCase; y1. < %.(%4
Def == (InjCase; y1. < %.((( %1.%1)
Def == (InjCase; y1. < %.(((( %1.*)
Def == (InjCase; y1. < %.((((( %1.%1(y))
Def == (InjCase; y1. < %.(((((( %1.%1(y1))
Def == (InjCase; y1. < %.((((((( %1.%1(B))
Def == (InjCase; y1. < %.(((((((( %1.%1(A))
Def == (InjCase; y1. < %.(((((((( A,B,y1,y,%. ( %1.%1)
Def == (InjCase; y1. < %.(((((((( A,B,y1,y,%. (( %1.( %2.*)(*))(%))))))))))
Def == (InjCase; y1. < %.(b1)
Def == (InjCase; y1. , %.*>)))
Def == (A
Def == ,B
Def == ,a
Def == ,b) |