ZMapArgs.hascasl.output revision 4d5d65e4f55ba8eaa02a4dab14348abeda75cf6b
free type Tree(a : Type) ::= Leaf (a) |
Node (Tree a) (a) |
EmptyLeaf
free type Nat ::= Zero |
Suc (Nat)
op caseTree : forall a : Type . Tree Nat -> Tree Nat
forall h : Tree Nat; n : Nat; t : Tree Nat
. ((fun __=__[Tree Nat]
: forall a : Type . a_v-1 * a_v-1 ->? Unit) :
Tree Nat * Tree Nat ->? Unit)
((op caseTree : Tree Nat -> Tree Nat)(var t : Tree Nat) : Tree Nat,
(case (var t : Tree Nat) of
(op EmptyLeaf[Nat] : forall a : Type . Tree a_v-1) : Tree Nat ->
(op EmptyLeaf[_var_14_v14] : forall a : Type . Tree a_v-1) :
Tree _var_14_v14 |
((op Leaf[Nat] : forall a : Type . a_v-1 -> Tree a_v-1) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat
->
(op EmptyLeaf[_var_14_v14] : forall a : Type . Tree a_v-1) :
Tree _var_14_v14 |
(((op Node[Nat]
: forall a : Type . Tree a_v-1 -> a_v-1 -> Tree a_v-1) :
Tree Nat -> Nat -> Tree Nat)
((op EmptyLeaf[Nat] : forall a : Type . Tree a_v-1) : Tree Nat) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat
->
(op EmptyLeaf[_var_14_v14] : forall a : Type . Tree a_v-1) :
Tree _var_14_v14 |
(((op Node[Nat]
: forall a : Type . Tree a_v-1 -> a_v-1 -> Tree a_v-1) :
Tree Nat -> Nat -> Tree Nat)
((((op Node[Nat]
: forall a : Type . Tree a_v-1 -> a_v-1 -> Tree a_v-1) :
Tree Nat -> Nat -> Tree Nat)
(var h : Tree Nat) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat
->
(var h : Tree Nat) |
(((op Node[Nat]
: forall a : Type . Tree a_v-1 -> a_v-1 -> Tree a_v-1) :
Tree Nat -> Nat -> Tree Nat)
(((op Leaf[Nat] : forall a : Type . a_v-1 -> Tree a_v-1) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat
->
((op Leaf[Nat] : forall a : Type . a_v-1 -> Tree a_v-1) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat) :
Tree Nat) :
Unit
%% Type Constructors -----------------------------------------------------
Logical : Type := Unit ->? Unit
Nat
: Type
%[free type Nat
::= Zero : Nat
Suc : Nat -> Nat (Nat)]%
Pred : Type -> Type := \ a : Type . a_v-1 ->? Unit
Tree
: Type -> Type
%[free type Tree(a : Type)
::= Leaf : a_v-1 -> Tree a_v-1 (a_v-1)
Node : Tree a_v-1 -> a_v-1 -> Tree a_v-1 (Tree a_v-1)(a_v-1)
EmptyLeaf : Tree a_v-1]%
Unit : Type
__*__ : +Type -> +Type -> Type
__-->__ : -Type -> +Type -> Type < (__-->?__, __->__)
__-->?__ : -Type -> +Type -> Type < __->?__
__->__ : -Type -> +Type -> Type < __->?__
__->?__ : -Type -> +Type -> Type
%% Assumptions -----------------------------------------------------------
EmptyLeaf : forall a : Type . Tree a_v-1 %(construct Tree)%
Leaf : forall a : Type . a_v-1 -> Tree a_v-1 %(construct Tree)%
Node
: forall a : Type . Tree a_v-1 -> a_v-1 -> Tree a_v-1
%(construct Tree)%
Suc : Nat -> Nat %(construct Nat)%
Zero : Nat %(construct Nat)%
__/\__ : ? Unit * ? Unit ->? Unit %(fun)%
__<=>__ : ? Unit * ? Unit ->? Unit %(fun)%
__=__ : forall a : Type . a_v-1 * a_v-1 ->? Unit %(fun)%
__=>__ : ? Unit * ? Unit ->? Unit %(fun)%
__=e=__ : forall a : Type . a_v-1 * a_v-1 ->? Unit %(fun)%
__\/__ : ? Unit * ? Unit ->? Unit %(fun)%
__if__ : ? Unit * ? Unit ->? Unit %(fun)%
__when__else__
: forall a : Type . a_v-1 * ? Unit * a_v-1 ->? a_v-1 %(fun)%
bottom : forall a : Type . a_v-1 %(fun)%
caseTree : Tree Nat -> Tree Nat %(op)%
def__ : forall a : Type . a_v-1 ->? Unit %(fun)%
false : Unit %(fun)%
not__ : ? Unit ->? Unit %(fun)%
true : Unit %(fun)%
�__ : ? Unit ->? Unit %(fun)%
%% Sentences -------------------------------------------------------------
free type Tree(a : Type)
::= Leaf : a_v-1 -> Tree a_v-1 (a_v-1)
Node : Tree a_v-1 -> a_v-1 -> Tree a_v-1 (Tree a_v-1)(a_v-1)
EmptyLeaf : Tree a_v-1 %(ga_Tree)%
free type Nat
::= Zero : Nat
Suc : Nat -> Nat (Nat) %(ga_Nat)%
((fun __=__[Tree Nat] : forall a : Type . a_v-1 * a_v-1 ->? Unit) :
Tree Nat * Tree Nat ->? Unit)
((op caseTree : Tree Nat -> Tree Nat)(var t : Tree Nat) : Tree Nat,
(case (var t : Tree Nat) of
(op EmptyLeaf[Nat] : forall a : Type . Tree a_v-1) : Tree Nat ->
(op EmptyLeaf[_var_14_v14] : forall a : Type . Tree a_v-1) :
Tree _var_14_v14 |
((op Leaf[Nat] : forall a : Type . a_v-1 -> Tree a_v-1) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat
->
(op EmptyLeaf[_var_14_v14] : forall a : Type . Tree a_v-1) :
Tree _var_14_v14 |
(((op Node[Nat]
: forall a : Type . Tree a_v-1 -> a_v-1 -> Tree a_v-1) :
Tree Nat -> Nat -> Tree Nat)
((op EmptyLeaf[Nat] : forall a : Type . Tree a_v-1) : Tree Nat) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat
->
(op EmptyLeaf[_var_14_v14] : forall a : Type . Tree a_v-1) :
Tree _var_14_v14 |
(((op Node[Nat]
: forall a : Type . Tree a_v-1 -> a_v-1 -> Tree a_v-1) :
Tree Nat -> Nat -> Tree Nat)
((((op Node[Nat]
: forall a : Type . Tree a_v-1 -> a_v-1 -> Tree a_v-1) :
Tree Nat -> Nat -> Tree Nat)
(var h : Tree Nat) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat
->
(var h : Tree Nat) |
(((op Node[Nat]
: forall a : Type . Tree a_v-1 -> a_v-1 -> Tree a_v-1) :
Tree Nat -> Nat -> Tree Nat)
(((op Leaf[Nat] : forall a : Type . a_v-1 -> Tree a_v-1) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat
->
((op Leaf[Nat] : forall a : Type . a_v-1 -> Tree a_v-1) :
Nat -> Tree Nat)
(var n : Nat) :
Tree Nat) :
Tree Nat) :
Unit
%% Diagnostics -----------------------------------------------------------
*** Warning, unused type variables '[ a : Type ]'
*** Hint 6.9, not a kind 'Tree Nat'
*** Hint 7.9, not a class 'Nat'
*** Hint 7.16, not a kind 'Tree Nat'
*** Hint 10.27, variable shadows global name(s) 'n'
*** Hint 11.37, variable shadows global name(s) 'n'
*** Hint 12.33, variable shadows global name(s) 'h'
*** Hint 12.35, variable shadows global name(s) 'n'
*** Hint 12.37, variable shadows global name(s) 'n'
*** Hint 13.33, variable shadows global name(s) 'n'
*** Hint 13.36, variable shadows global name(s) 'n'