| Who Cites remove msgs? |
|
remove_msgs | Def (L -msg(a;b) L1) == filter( a.reduce( b,y. ![](FONT/not.png) msg(a;b)![](FONT/and.png) y;true ;L1);L) |
| | Thm* A:Type, msg:(A![](FONT/dash.png) A![](FONT/dash.png) ![](FONT/then_med.png) ), L,L1:A List. (L -msg(a,b) L1) A List |
|
bnot |
Def ![](FONT/not.png) b == if b false else true fi |
| | Thm* b: . ![](FONT/not.png) b ![](FONT/bool.png) |
|
band |
Def p![](FONT/and.png) q == if p q else false fi |
| | Thm* p,q: . (p![](FONT/and.png) q) ![](FONT/bool.png) |
|
filter |
Def filter(P;l) == reduce( a,v. if P(a) [a / v] else v fi;nil;l) |
| | Thm* T:Type, P:(T![](FONT/dash.png) ![](FONT/then_med.png) ), l:T List. filter(P;l) T List |
|
reduce |
Def reduce(f;k;as) == Case of as; nil k ; a.as' f(a,reduce(f;k;as')) (recursive) |
| |
Thm* A,B:Type, f:(A![](FONT/dash.png) B![](FONT/dash.png) B), k:B, as:A List. reduce(f;k;as) B |