def	aunt A of C
 as	aunt/uncle A C
	female A

def	hypot a b c
 as	sqr aa a
	sqr bb b
	sqr cc c
	+ cc aa bb

if	hypot a b c
	>= a 0
	>= b 0
 then	>= c a
	>= c b
	+ a+b a b
	>= a+b c

def	sqr aa a
 as	* aa a a

def	sqr aa a
 as	^ aa a 2


def	fib f n
  	nat n f
  as
	or	in n 0 1
		= f n
	 or	
		nat n
		>= n 2
		succ n n-1
		succ n-1 n-2
		fib f_n-2 n-2
		fib f_n-1 n-1
		+ f f_n-2 f_n-1

def	fib f n
  	num n f
  as
	^ 5 rt5 2
	+ rt5+1 rt5 1
	* rt5+1 gr 2
	+ gr 1-gr 1
	^ gr^n gr n
	^ (1-gr)^n gr2 n
	+ gr^n (1-gr)^n diff
	* diff f rt5

# definitely would like a graphical language for such as that!
# If using anonymous vars it would be like:

def	fib f n
  	num n f
  as
	^ 5 a 2
	+ b a 1
	* b c 2
	+ c d 1
	^ e c n
	^ g d n
	+ e g h
	* h f a

# If naming some:

def	fib f n
	num n f
  as	^ 5 rt5 2
	+ .a rt5 1
	* .a phi 2
	+ phi psi 1
	^ .b phi n
	^ .c psi n
	+ .b .d .c
	* .d f rt5

# that's not too bad... or with some greek and symbols:

def	fib f n
	num n f
  as	^ 5 √5 2
	+ .a √5 1
	* .a φ 2
	+ φ ψ 1
	^ .b φ n
	^ .c ψ n
	+ .b .d .c
	* .d f √5

# with small caps for temporaries...?  ?? nah, silly and hard to edit!

def	fib f n
	num n f
  as	^ 5 √5 2
	+ ᴀ √5 1
	* ᴀ φ 2
	+ φ ψ 1
	^ ʙ φ n
	^ ᴄ ψ n
	+ ʙ ᴅ ᴄ
	* ᴅ f √5

# with real caps for temporaries?

def	fib f n
	num n f
  as	^ 5 √5 2
	+ A √5 1
	* A φ 2
	+ φ ψ 1
	^ B φ n
	^ C ψ n
	+ B D C
	* D f √5

# with real caps for non-temporaries?

Def	Fib F N
	Num N F
  As	^ 5 √5 2
	+ a √5 1
	* a φ 2
	+ φ ψ 1
	^ b φ N
	^ c ψ N
	+ b d c
	* d F √5

# with lower for all?

def	fib f n
	num n f
  as	^ 5 √5 2
	+ a √5 1
	* a φ 2
	+ φ ψ 1
	^ b φ n
	^ c ψ n
	+ b d c
	* d f √5

# could perhaps use a lighter color for temporaries, see fib.odt,
# like syntax hiliting



def	ψφ
  as	science-fiction
