BoundedOrd.hascasl.output revision a6f84880cea4485fba85b521d122eba73b0df70b
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 ();
class Cpo < Ord
var a : Cpo
op __<=__ : Pred (a * a)
var x : ? a
. x <=[? a] x;
classes
BoundedOrd < Type;
Cpo < Type;
DiscreteOrd < Type;
Num < Type;
Ord < Type
classes
BoundedOrd < Ord;
Cpo < Ord;
DiscreteOrd < Ord
types
? : +Ord -> Ord;
Unit : Ord;
__*__ : +Ord -> +Ord -> Ord;
__->?__ : -Ord -> +Ord -> Ord
vars
a : Cpo %(var_46)%;
b : Ord %(var_32)%
op __<=__ : forall a : Cpo . Pred (a * a) %(op)%
op __<=__ : forall a : Ord . Pred (a * a) %(op)%
op __<=__ : forall a : Ord; b : Ord . Pred ((a ->? b) * (a ->? b))
%(op)%
op bot : forall b : BoundedOrd . b %(op)%
op min : forall b : Num . b * b ->? b %(op)%
op min : forall a : Ord . a * a ->? a %(op)%
op top : forall b : BoundedOrd . b %(op)%
vars
v : b;
w : b;
x : ? a;
y : ? a;
z : a
forall a : Ord; x : a
. (op __<=__ : forall a : Ord . Pred (a * a)) (x, x)
forall a : Ord; x : a
. (op __<=__ : forall a : Ord . Pred (a * a)) (x, x)
forall a : Ord; x : a; y : a; z : a
. (op __<=__ : forall a : Ord . Pred (a * a)) (x, y)
/\ (op __<=__ : forall a : Ord . Pred (a * a)) (y, z)
=> (op __<=__ : forall a : Ord . Pred (a * a)) (x, z)
forall a : Ord; x : a; y : a
. (op __<=__ : forall a : Ord . Pred (a * a)) (x, y)
/\ (op __<=__ : forall a : Ord . Pred (a * a)) (y, x)
=> x = y
forall b : BoundedOrd; v : b
. (op __<=__ : forall a : Ord . Pred (a * a)) (bot, v)
forall b : BoundedOrd; v : b
. (op __<=__ : forall a : Ord . Pred (a * a)) (v, top)
forall a : Ord; b : Ord; v : b; w : b; x : a; y : a
. (op __<=__ : forall a : Ord . Pred (a * a)) ((x, v), (y, w))
<=> (op __<=__ : forall a : Ord . Pred (a * a)) (x, y)
/\ (op __<=__ : forall a : Ord . Pred (a * a)) (v, w)
forall a : DiscreteOrd; x : a; y : a
. (op __<=__ : forall a : Ord . Pred (a * a)) (x, y) <=> x = y
. (op __<=__ : forall a : Ord . Pred (a * a)) ((), ())
forall a : Ord; x : ? a; y : ? a
. (op __<=__ : forall a : Ord . Pred (a * a)) (x, y)
<=> def x ()
=> (op __<=__ : forall a : Ord . Pred (a * a)) (x (), y ())
forall a : Cpo; x : ? a
. (op __<=__ : forall a : Ord . Pred (a * a))[? a] (x, x)
### Hint 2.7, is type variable 'a'
### Hint 2.16, not a class 'a'
### Hint 3.22,
no kind found for 'a'
expected: {Cpo}
found: {Ord}
### Hint 3.22,
no kind found for 'a'
expected: {Cppo}
found: {Ord}
### Hint 8.7, is type variable 'a'
### Hint 8.7, rebound type variable 'a'
### Hint 8.15, is type variable 'b'
### Hint 9.22,
no kind found for 'a'
expected: {Cpo}
found: {Ord}
### Hint 9.22,
no kind found for 'a'
expected: {Cppo}
found: {Ord}
### Hint 9.16-9.24,
repeated declaration of '__<=__' with type 'Pred (a * a)'
### 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 29.12,
no kind found for 'a'
expected: {Cpo}
found: {Ord}
### Hint 29.12,
no kind found for 'a'
expected: {Cppo}
found: {Ord}
### Hint 30.12,
no kind found for 'b'
expected: {Cpo}
found: {Num}
### Hint 30.12,
no kind found for 'b'
expected: {Cppo}
found: {Num}
### Hint 30.12,
no kind found for 'b'
expected: {Ord}
found: {Num}
### 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.23-33.29,
no kind found for 'a ->? b'
expected: {Cpo}
found: {Type}
### Hint 33.23-33.29,
no kind found for 'a ->? b'
expected: {Cppo}
found: {Type}
### Hint 33.23-33.29,
no kind found for 'a ->? b'
expected: {Ord}
found: {Type}
### Hint,
in type of '((), ())'
typename 'Unit'
is not unifiable with type '_v36_a ->? _v37_b' (33.29)
### Hint,
untypeable term (with type: (_v36_a ->? _v37_b) * (_v36_a ->? _v37_b))
'((), ())'
### 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 41.3-41.8,
in type of '((var x : ? a), (var y : ? a))'
typename 'a' (40.14)
is not unifiable with type '_v40_a ->? _v41_b' (33.29)
### Hint 41.3-41.8,
untypeable term (with type: (_v40_a ->? _v41_b) * (_v40_a ->? _v41_b))
'(x, y)'
### Hint 41.25-41.32,
in type of '((var x : ? a) (), (var y : ? a) ())'
typename 'a' (40.14)
is not unifiable with type '_v44_a ->? _v45_b' (33.29)
### Hint 41.25-41.32,
untypeable term (with type: (_v44_a ->? _v45_b) * (_v44_a ->? _v45_b))
'(x (), y ())'
### Warning 43.7-43.9, refined class 'Cpo'
### Hint 44.5, is type variable 'a'
### Hint 44.5, rebound type variable 'a'
### Hint 45.22,
no kind found for 'a'
expected: {Cppo}
found: {Cpo}
### Hint 47.6, not a kind '? a'
### Hint 47.5, rebound variable 'x'
### Hint 48.7-48.10, is type list '[? a]'
### Hint 48.10,
for type scheme 'Pred ((a ->? b) * (a ->? b))' wrong length of instantiation list
'[? a]'
### Hint 48.3-48.12,
constrain '(? a) : Cpo' is unprovable of '(op __<=__ : forall a : Cpo . Pred (a * a))[? a]
((var x : ? a), (var x : ? a))'
known kinds are: {Ord}