verification of signatures. Separated out algebraic laws into a trait
can now extend algebraic theories and remap their operators
completed Heyting algebra code