mirror of
https://github.com/Kindelia/Kind2.git
synced 2024-10-26 16:20:40 +03:00
27 lines
997 B
Plaintext
27 lines
997 B
Plaintext
Word.adder<size: Nat>(a: Word(size), b: Word(size), c: Bool): Word(size)
|
|
case a with b {
|
|
e: Word.e,
|
|
o: case b with a.pred: Word(Nat.pred(b.size)) {
|
|
e: Word.e,
|
|
o: case c {
|
|
true : Word.i<b.size>(Word.adder<b.size>(a.pred, b.pred, Bool.false)),
|
|
false: Word.o<b.size>(Word.adder<b.size>(a.pred, b.pred, Bool.false)),
|
|
},
|
|
i: case c {
|
|
true : Word.o<b.size>(Word.adder<b.size>(a.pred, b.pred, Bool.true)),
|
|
false: Word.i<b.size>(Word.adder<b.size>(a.pred, b.pred, Bool.false)),
|
|
}
|
|
}!
|
|
i: case b with a.pred: Word(Nat.pred(b.size)) {
|
|
e: Word.e,
|
|
o: case c {
|
|
true : Word.o<b.size>(Word.adder<b.size>(a.pred, b.pred, Bool.true)),
|
|
false: Word.i<b.size>(Word.adder<b.size>(a.pred, b.pred, Bool.false)),
|
|
},
|
|
i: case c {
|
|
true : Word.i<b.size>(Word.adder<b.size>(a.pred, b.pred, Bool.true)),
|
|
false: Word.o<b.size>(Word.adder<b.size>(a.pred, b.pred, Bool.true)),
|
|
}
|
|
}!
|
|
}!
|