vocabulary V {
type e isa int
Op(e,e):e
}
theory T : V{ //Op = intern -> functieconstraint //Op = associatief Op(Op(a,b),c) = Op(a,Op(b,c)).
//Neutraal element !x : Op(x,1) = x = Op(1,x).
//Invers element ! x : ? y : Op(x,y) = 1.
//Niet commutatief ?x y : Op(x,y) ~= Op(y,x). }
structure S : V {
e = {1..6}
}
vocabulary V {
type e isa int
template Groep
G1(e,e):e
G2(e,e):e
morfisme(e):e
}
theory T : V {
Groep(G1).
Groep(G2).
! a b : morfisme(G1(a,b)) = G2(morfisme(a),morfisme(b)).
injective(morfisme). //Higher-Order constraint door aggregaat!
}
template Groep(Op){
Op(Op(a,b),c) = Op(a,Op(b,c)).
!x : Op(x,1) = x = Op(1,x).
! x : ? y : Op(x,y) = 1.
}
!x : P(x) -> ~ (?x : P(x))