Title: DemeterF
1DemeterF
2Illustration of combinefor capacity constraint
violation
19a
19
C
(w1w2w3w4,2)
Cons
(w1w2w3w4,1)
E
(w4,0)
1
20
2
18a
3
18
3a
13a
(w1w2w3,1)
Cons
after blue arrow combine is active (like after)
17a
C
(w2w3,1)
4
12a
17
Cons
(w1,0)
5
13
14
12
16a
(w2w3,0)
Cons
15a
6
(0,0)
E
Empty
(w1,0)
11a
7a
15
16
11
E
(w3,0)
Cons
(w2,0)
both containers (C) violate capacity constraints
8
7
10a
9a
(w2,0)
E
Empty
(0,0)
9
10
3The default Builder for PathSpec
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
4well-formed movie
- show how the default builder is modified to
combine Boolean objects.
5The default Builder for PathSpecwell-formed
specialization 1
t true f false
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
t
5
2
S
S
S
S
7
8
f
t
t
3
4
t
6The default Builder for PathSpecwell-formed
specialization 2
t true f false
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
t
t
5
2
S
S
S
S
7
8
t
f
t
3
4
t
7The default Builder for PathSpecwell-formed
specialization 3
t true f false
after blue arrow copy is built (like after)
10
t
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
f
t
t
3
4
t
8The default Builder for PathSpecwell-formed
specialization 4
t true f false
after blue arrow copy is built (like after)
10
t
M
1
9
J
6
f
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
f
t
t
3
4
t
9The default Builder for PathSpecwell-formed
specialization 5
t true f false
after blue arrow copy is built (like after)
10
t
M
1
9
J
6
f
t
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
f
t
t
3
4
t
10The default Builder for PathSpecwell-formed
specialization 6
t true f false
after blue arrow copy is built (like after)
10
t
f
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
f
t
t
3
4
t
11The default Builder for PathSpecwell-formed
specialization 7
f
t true f false
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
f
t
t
3
4
t
12The default Builder for PathSpecwell-formed
specialization
t true f false
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
f
t
t
3
4
t
13The default Builder for PathSpecNOT_JOIN_MERGE
specialization
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
14The default Builder for PathSpecNOT_JOIN_MERGE
specialization
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
15The default Builder for PathSpecNOT_JOIN_MERGE
specialization
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
16The default Builder for PathSpecNOT_JOIN_MERGE
specialization
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
17The default Builder for PathSpecNOT_JOIN_MERGE
specialization
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
18The default Builder for PathSpecNOT_JOIN_MERGE
specialization
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
19The default Builder for PathSpecNOT_JOIN_MERGE
specialization
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
20The default Builder for PathSpecNOT_JOIN_MERGE
specialization
after blue arrow copy is built (like after)
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
21The default Builder for PathSpecNOT_JOIN_MERGE
specialization
insert NOT
after blue arrow copy is built (like after)
N
10
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
22The default Builder for PathSpecNOT_JOIN_MERGE
specialization
insert NOT
M
after blue arrow copy is built (like after)
N
10
N
M
1
9
J
6
Count only upon first visit (red) and upon final
visit (blue). For leaf nodes, count only in red.
J
5
2
S
S
S
S
7
8
3
4
23Illustration of combinefor capacity constraint
violation
C
(w1w2w3w4,2)
Cons
(w1w2w3w4,1)
E
(w4,0)
(w1w2w3,1)
Cons
C
(w2w3,1)
Cons
(w1,0)
(w2w3,0)
Cons
(0,0)
E
Empty
(w1,0)
E
(w3,0)
Cons
(w2,0)
both containers (C) violate capacity constraints
(w2,0)
E
Empty
(0,0)
24Theory
On left side of gt the term c() only indicates a
compound object.
- tf,b(d) gt d, where df(d), d is atomic
- tf,b(c(d0, ,dn)) gt
- f(b(c(d0, ,dn), d0, ,dn)), where di
tf,b(di) - Default functions
- idf(d) gt d
- idb(c(d0, ,dn), d0, ,dn) gt c(d0, ,dn)
- bc(c(d0, ,dn), d0, ,dn) gt c(d0, ,dn)
25Theory
- f is a polymorphic function that takes a single
argument and returns a result. - b is a function object that is responsible for
reconstruction of data types.