?. ???-??rt????t?s-s?, ?. ?@bullet?-?-r, ?. ?. , ?. , ?. ?. et al., ??? ?r????r ?s ??s????? s??? t??t ?t ?s ??s? t? ??t??? ?t ??t? ??? ??t???s ?s t???r ??r??????t???s ?r? ????? t? t?? ????? ???r?r?? ?t ?s ??s? ??s? ??r t?? ??t??rs, s???r t?? r??r?t? s?st?? ??????????trs ?r?? ?P?? ???? minus(x, 0) ? x minus(s(x), s(y)) ? minus(x, y) quot(0, s(y)) ? 0 quot(s(x), s(y)) ? s(quot(minus(x, y), s(y)))

?. T??, ?. ?. , ?. , ?. ?????-?-?-???t?, ?. ???-??-?-?t?? et al., ) minus # (s(x), s(y)) ? minus # (x, y) (2) quot # (s(x), s(y)) ? minus # (x, y) (3) quot # (s(x), s(y)) ? quot # (minus(x, y), s(y))

?. ?. , ?. , ?. ?s??-t, ?. , and ?. @bullet??, (3)} ?? Module PIS2 <: TPolyInt. Definition trsInt f := match f as f return poly (@ASignature.arity s1 f ) with | (hd ?symb M .minus) ? ?? minus

?. ?. , ?. , ?. ????r?-?-t-s??, ?. , ?. et al., v ) s??? t??t? ? k : N ?s t?? ?????r ?? ?????s? ? f : terms k ? term ?s ? ????t??? ?????? ????? ? ???t?r v ?? k t?r?s? r?t?r?s t?? ??? ?? t ??t? t?? i ?t? ????? r??????? ?? t?? i ?t? t?r? ?? v ? ? v : terms k ?s t?? ???t?r ?? t?? k ?????s? ???s???r ??s? t?? ????????? ???????r? ????t???s? ? sum : ? n, Caps n ? N ?? t?? ????t??? ?????t??? t?? t?t?? ?????r ?? ?????s ?? ? ???t?r cs ?? Cap?s (k i , f i , v i )? sum cs= k 1 + . . . + k n ? ? conc : ? (n : N) cs, Caps n ? terms (sum cs) ?? t?? ????t??? ?????t???t??? ??? t?? ????? ???t?rs ?? ? ???t?r cs ?? Cap?s (k i , f i , v i )? conc cs= v 1 @ . . . @v n ? ? Vmap?sum : ? (n : N) (cs : Caps n), terms (sum cs) ? terms n ?? t?? ????t??? t??t? ????? ? ???t?r ?? Cap?s (k i , f i

?. ?. , ?. ?. , ?. Cap, ?. ??-??@bullet-?-?-?s-s???-t??t?, ?. et al., ? f t? ?r?s? ??r?????s? Fixpoint cap (t : term) : Cap := match t with | Var x ? mkCap (? ? t, Vnil ) | Fun f ts ? let fix caps n (ts : terms n) {struct ts } : Caps n := match ts in vector n return Caps n with | Vnil ? Vnil | Vcons t n ? ts ? ? Vcons (cap t) (caps n ? ts ? ) end in if condition f then mkCap (?v ? Vnth v, Vcons t Vnil ) else let cs := caps (arity f ) ts in mkCap (?v ? Fun f (Vmap?sum cs v ), conc cs) end