BoundedOrd.hascasl.output revision 9ae2df7accdbf35839d56f90e1e8662be7112cdb
class Ord
{vars a : Ord; x : a
op __<=__ : Pred (a * a)
. x <= x;
}
class BoundedOrd < Ord
vars a : Ord; b : BoundedOrd
ops __<=__ : Pred (a * a);
bot, top : b
vars x, y, z : a; v : b
. x <= x
. x <= y /\ y <= z => x <= z
. x <= y /\ y <= x => x = y
. bot <= v
. v <= top;
vars a, b : Ord
type instance a * b : Ord
vars x, y : a; v, w : b
. (x, v) <= (y, w) <=> x <= y /\ v <= w;
class instance DiscreteOrd < Ord
vars a : DiscreteOrd; x, y : a
. x <= y <=> x = y;
class Num
vars a : Ord; b : Num
ops min : a * a ->? a;
min : b * b ->? b
vars a : Ord; b : Ord
op __<=__ : Pred ((a ->? b) * (a ->? b))
type instance a ->? b : Ord
type instance Unit : Ord
. () <= ();
type instance ? a : Ord
vars x, y : ? a
. x <= y <=> def x () => x () <= y ();
%% Classes ---------------------------------------------------------------
BoundedOrd < Ord
DiscreteOrd < Ord
Num < Type
Ord < Type
%% Type Variables --------------------------------------------------------
a : Ord %(var_164)%
b : Ord %(var_165)%
%% Assumptions -----------------------------------------------------------
__<=__ : forall a : Ord . Pred (a * a) %(op)%
bot : forall b : BoundedOrd . b %(op)%
min : forall b : Num . b * b ->? b %(op)%
top : forall b : BoundedOrd . b %(op)%
%% Variables -------------------------------------------------------------
v : b
w : b
x : ? a
y : ? a
z : a
%% Sentences -------------------------------------------------------------
x <= x
x <= x
x <= y /\ y <= z => x <= z
x <= y /\ y <= x => x = y
bot <= v
v <= top
(x, v) <= (y, w) <=> x <= y /\ v <= w
x <= y <=> x = y
() <= ()
x <= y <=> def x () => x () <= y ()
%% Diagnostics -----------------------------------------------------------
### Hint 2.7, is type variable 'a'
### Hint 2.16, not a class 'a'
### Hint 8.7, is type variable 'a'
### Hint 8.7, rebound type variable 'a'
### Hint 8.15, is type variable 'b'
### Hint 9.9, repeated declaration of '__<=__'
### Hint 11.8, not a class 'a'
### Hint 11.7, rebound variable 'x'
### Hint 11.11, not a class 'a'
### Hint 11.14, not a class 'a'
### Hint 11.20, not a class 'b'
### Hint 18.7, is type variable 'a'
### Hint 18.7, rebound type variable 'a'
### Hint 18.10, is type variable 'b'
### Hint 18.10, rebound type variable 'b'
### Hint 20.8, not a class 'a'
### Hint 20.7, rebound variable 'x'
### Hint 20.11, not a class 'a'
### Hint 20.10, rebound variable 'y'
### Hint 20.17, not a class 'b'
### Hint 20.16, rebound variable 'v'
### Hint 20.20, not a class 'b'
### Hint 24.7, is type variable 'a'
### Hint 24.7, rebound type variable 'a'
### Hint 24.24, not a class 'a'
### Hint 24.23, rebound variable 'x'
### Hint 24.27, not a class 'a'
### Hint 24.26, rebound variable 'y'
### Hint 28.7, is type variable 'a'
### Hint 28.7, rebound type variable 'a'
### Hint 28.15, is type variable 'b'
### Hint 28.15, rebound type variable 'b'
### Hint 30.12-30.22, no kind found for 'b'
expected: Ord
found: Num
### Warning 30.7, overlapping declaration of 'min'
### Hint 32.7, is type variable 'a'
### Hint 32.7, rebound type variable 'a'
### Hint 32.15, is type variable 'b'
### Hint 32.15, rebound type variable 'b'
### Hint 33.16-33.43, no kind found for 'a ->? b'
expected: Ord
found: Type
### Warning 33.9, overlapping declaration of '__<=__'
### Hint 40.8, not a kind '? a'
### Hint 40.7, rebound variable 'x'
### Hint 40.11, not a kind '? a'
### Hint 40.10, rebound variable 'y'
### Hint, in type of '(var x : ? a)'
typename 'a' (40.14)
is not unifiable with type 'Unit ->? ? _v195'
### Hint, in type of '(var x : ? a)'
typename 'a' (40.14)
is not unifiable with type 'Unit ->? _v203' (41.25)
### Hint, in type of '(var y : ? a)'
typename 'a' (40.14)
is not unifiable with type 'Unit ->? _v204' (41.32)