Thm* P:(T  ), a:array(T), i: |a|, v:T. array-count(v.P(v);a[i:=v]) = array-count(v.P(v);a)+if P(v) if P(a[i]) 0 else 1 fi ;P(a[i]) -1 else 0 fi | [array-count-update] |
Thm* T:Type, P:(T  ), a:array(T). array-count(v.P(v);a) (|a|+1) | [array-count_wf] |
Thm* E:(T T  ). ( x,y:T. E(x,y)  x = y)  ( i:T, s:(T+T) List. member-left-paren(x,y.E(x,y);i;s)  (inl(i) s)) | [assert-member-left-paren] |
Thm* E:(T T  ). ( x,y:T. E(x,y)  x = y)  ( i:T, s:(T+T) List. member-right-paren(x,y.E(x,y);i;s)  (inr(i) s)) | [assert-member-right-paren] |
Thm* E:(T T  ). ( x,y:T. E(x,y)  x = y)  ( i:T, s:(T+T) List. member-paren(x,y.E(x,y);i;s)  (inl(i) s) (inr(i) s)) | [assert-member-paren] |