Colimit.hs revision b87efd3db0d2dc41615ea28669faf80fc1b48d56
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
5253N/Amodule DFOL.Colimit (
5253N/Aimport DFOL.AS_DFOL
5253N/Aimport DFOL.Morphism
5253N/Aimport Common.Result
5256N/Aimport Common.Lib.Graph
6429N/Aimport qualified Data.Graph.Inductive.Graph as Graph
6429N/Aimport qualified Common.Lib.Rel as Rel
6429N/Aimport qualified Data.IntMap as IntMap
7016N/A let sigs = Graph.labNodes gr
5413N/A let maps1 = IntMap.insert i m maps
5525N/A m1 = Map.insert n n2 m
5305N/A doneSyms1 = Set.insert n1 doneSyms
5305N/A else let k = Set.findMin eqSyms
5305N/A c = findValue k $ IntMap.insert i m maps
5305N/A m1 = Map.insert n c m
5305N/A doneSyms1 = Set.insert n1 doneSyms
5305N/AprocessSig _ _ _ _ _ _ _ _ = (emptySig, IntMap.empty)
5305N/AfindValue (i,k) maps = let Just m = IntMap.lookup i maps
5305N/A in Map.findWithDefault k k m
5305N/A if (Set.notMember n names)
5253N/A let morphs = Graph.labEdges gr
5342N/A let syms = Set.toList $ getSymbols $ source m
5253N/A in Rel.insert (i,s) (j,t)
7013N/A $ Rel.insert (j,t) (i,s) r2
5525N/A in Rel.transClosure rel