proc cset2set
	filen	sets.icn
	local	0,001000,cs
	local	1,000020,result
	local	2,000000,set
	local	3,000000,insert
	declend
	line	47
	colm	11
	mark	L1
	pnull
	var	1
	var	2
	line	50
	colm	17
	invoke	0
	line	50
	colm	11
	asgn
	unmark
lab L1
	mark	L2
	mark0
	var	3
	var	1
	pnull
	var	0
	line	51
	colm	25
	bang
	line	51
	colm	16
	invoke	2
	pop
lab L3
	efail
lab L4
	unmark
lab L2
	mark	L5
	mark	L6
	var	1
	line	53
	colm	4
	pret
lab L6
	pfail
	unmark
lab L5
	pnull
	line	55
	colm	1
	pfail
	end
proc pairset
	local	0,001000,T
	local	1,000000,set
	local	2,000000,sort
	declend
	line	57
	colm	11
	mark	L1
	mark	L2
	var	1
	var	2
	var	0
	line	58
	colm	20
	invoke	1
	line	58
	colm	15
	invoke	1
	line	58
	colm	5
	pret
lab L2
	pfail
	unmark
lab L1
	pnull
	line	59
	colm	1
	pfail
	end
proc domain
	local	0,001000,T
	local	1,000020,dom
	local	2,000000,set
	local	3,000000,insert
	local	4,000000,key
	declend
	line	61
	colm	11
	mark	L1
	pnull
	var	1
	var	2
	line	64
	colm	15
	invoke	0
	line	64
	colm	9
	asgn
	unmark
lab L1
	mark	L2
	mark0
	var	3
	var	1
	var	4
	var	0
	line	65
	colm	26
	invoke	1
	line	65
	colm	17
	invoke	2
	pop
lab L3
	efail
lab L4
	unmark
lab L2
	mark	L5
	mark	L6
	var	1
	line	66
	colm	5
	pret
lab L6
	pfail
	unmark
lab L5
	pnull
	line	67
	colm	1
	pfail
	end
proc range
	local	0,001000,T
	local	1,000020,ran
	local	2,000000,set
	local	3,000000,insert
	declend
	line	69
	colm	11
	mark	L1
	pnull
	var	1
	var	2
	line	72
	colm	15
	invoke	0
	line	72
	colm	9
	asgn
	unmark
lab L1
	mark	L2
	mark0
	var	3
	var	1
	pnull
	var	0
	line	73
	colm	23
	bang
	line	73
	colm	17
	invoke	2
	pop
lab L3
	efail
lab L4
	unmark
lab L2
	mark	L5
	mark	L6
	var	1
	line	74
	colm	5
	pret
lab L6
	pfail
	unmark
lab L5
	pnull
	line	75
	colm	1
	pfail
	end
proc inverse
	local	0,001000,T
	local	1,001000,Default
	local	2,000020,inv
	local	3,000020,delem
	local	4,000020,relem
	local	5,000000,table
	local	6,000000,key
	local	7,000000,type
	local	8,000000,member
	local	9,000000,put
	local	10,000000,insert
	local	11,000000,set
	con	0,010000,4,154,151,163,164
	con	1,010000,3,163,145,164
	declend
	line	77
	colm	11
	mark	L1
	pnull
	var	2
	var	5
	var	1
	line	80
	colm	17
	invoke	1
	line	80
	colm	9
	asgn
	unmark
lab L1
	mark	L2
	mark0
	pnull
	var	3
	var	6
	var	0
	line	81
	colm	23
	invoke	1
	line	81
	colm	17
	asgn
	pop
	mark0
	mark	L5
	pnull
	var	7
	var	1
	line	82
	colm	16
	invoke	1
	str	0
	line	82
	colm	26
	lexeq
	unmark
	mark	L7
	var	8
	var	2
	pnull
	var	4
	pnull
	var	0
	var	3
	line	83
	colm	36
	subsc
	line	83
	colm	32
	asgn
	line	83
	colm	20
	invoke	2
	unmark
	var	9
	pnull
	var	2
	var	4
	line	84
	colm	20
	subsc
	var	3
	line	84
	colm	16
	invoke	2
	goto	L8
lab L7
	pnull
	pnull
	var	2
	var	4
	line	85
	colm	19
	subsc
	pnull
	var	3
	line	85
	colm	30
	llist	1
	line	85
	colm	27
	asgn
lab L8
	goto	L6
lab L5
	mark	L9
	pnull
	var	7
	var	1
	line	86
	colm	21
	invoke	1
	str	1
	line	86
	colm	31
	lexeq
	unmark
	mark	L11
	var	8
	var	2
	pnull
	var	4
	pnull
	var	0
	var	3
	line	87
	colm	36
	subsc
	line	87
	colm	32
	asgn
	line	87
	colm	20
	invoke	2
	unmark
	var	10
	pnull
	var	2
	var	4
	line	88
	colm	23
	subsc
	var	3
	line	88
	colm	19
	invoke	2
	goto	L12
lab L11
	pnull
	pnull
	var	2
	var	4
	line	89
	colm	19
	subsc
	var	11
	pnull
	var	3
	line	89
	colm	34
	llist	1
	line	89
	colm	33
	invoke	1
	line	89
	colm	27
	asgn
lab L12
	goto	L10
lab L9
	pnull
	pnull
	var	2
	pnull
	var	0
	var	3
	line	90
	colm	19
	subsc
	line	90
	colm	17
	subsc
	var	3
	line	90
	colm	28
	asgn
lab L10
lab L6
	unmark
lab L3
	efail
lab L4
	unmark
lab L2
	mark	L13
	mark	L14
	var	2
	line	92
	colm	5
	pret
lab L14
	pfail
	unmark
lab L13
	pnull
	line	93
	colm	1
	pfail
	end
proc seteq
	local	0,001000,set1
	local	1,001000,set2
	local	2,000020,x
	local	3,000000,member
	declend
	line	95
	colm	11
	mark	L1
	mark0
	pnull
	pnull
	var	0
	line	98
	colm	7
	size
	pnull
	var	1
	line	98
	colm	16
	size
	line	98
	colm	13
	numne
	unmark
	line	98
	colm	27
	pfail
	unmark
lab L1
	mark	L2
	mark0
	pnull
	var	2
	pnull
	var	0
	line	99
	colm	15
	bang
	line	99
	colm	12
	asgn
	pop
	mark0
	mark0
	mark	L5
	var	3
	var	1
	var	2
	line	100
	colm	20
	invoke	2
	unmark
	efail
lab L5
	pnull
	unmark
	line	100
	colm	35
	pfail
	unmark
lab L3
	efail
lab L4
	unmark
lab L2
	mark	L6
	mark	L7
	var	1
	line	101
	colm	4
	pret
lab L7
	pfail
	unmark
lab L6
	pnull
	line	103
	colm	1
	pfail
	end
proc setlt
	local	0,001000,set1
	local	1,001000,set2
	local	2,000020,x
	local	3,000000,member
	declend
	line	105
	colm	11
	mark	L1
	mark0
	pnull
	pnull
	var	0
	line	108
	colm	7
	size
	pnull
	var	1
	line	108
	colm	16
	size
	line	108
	colm	13
	numge
	unmark
	line	108
	colm	27
	pfail
	unmark
lab L1
	mark	L2
	mark0
	pnull
	var	2
	pnull
	var	0
	line	109
	colm	15
	bang
	line	109
	colm	12
	asgn
	pop
	mark0
	mark0
	mark	L5
	var	3
	var	1
	var	2
	line	110
	colm	20
	invoke	2
	unmark
	efail
lab L5
	pnull
	unmark
	line	110
	colm	35
	pfail
	unmark
lab L3
	efail
lab L4
	unmark
lab L2
	mark	L6
	mark	L7
	var	1
	line	111
	colm	4
	pret
lab L7
	pfail
	unmark
lab L6
	pnull
	line	113
	colm	1
	pfail
	end
proc simage
	local	0,001000,set
	local	1,000020,result
	local	2,000000,image
	con	0,010000,0
	con	1,010000,2,054,040
	con	2,010000,2,173,040
	con	3,002000,1,1
	con	4,002000,1,2
	con	5,010000,2,040,175
	declend
	line	115
	colm	11
	mark	L1
	pnull
	var	1
	str	0
	line	118
	colm	11
	asgn
	unmark
lab L1
	mark	L2
	mark0
	pnull
	var	1
	dup
	pnull
	var	2
	pnull
	var	0
	line	120
	colm	28
	bang
	line	120
	colm	27
	invoke	1
	str	1
	line	120
	colm	34
	cat
	line	120
	colm	17
	cat
	asgn
	pop
lab L3
	efail
lab L4
	unmark
lab L2
	mark	L5
	mark	L6
	pnull
	pnull
	str	2
	pnull
	var	1
	int	3
	pnull
	int	4
	line	122
	colm	28
	neg
	line	122
	colm	27
	sect
	line	122
	colm	16
	cat
	str	5
	line	122
	colm	32
	cat
	line	122
	colm	4
	pret
lab L6
	pfail
	unmark
lab L5
	pnull
	line	124
	colm	1
	pfail
	end
