Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 1794
Image: ubuntu2004
1
load("__common__.sage")
2
3
def generator():
4
dim = choice([2,3,4])
5
v=vector([var("x"),var("y"),var("z"),var("w")][0:dim])
6
7
if( dim == 2):
8
subspacePredicate = choice([
9
(randrange(1,8)*v[0]+randrange(1,8)*v[1] == 0),
10
(randrange(2,8)*v[0]==randrange(1,7)*v[1])
11
])
12
notsubspacePredicate = choice([
13
(v[0]^randrange(2,4)+randrange(1,8)*v[1] == 0),
14
(v[0]^randrange(2,4)==randrange(1,8)*v[1]),
15
(randrange(2,8)*v[0]*v[1]^randrange(2,4) == 0),
16
(randrange(2,8)*v[0]==v[1]^randrange(2,4)),
17
])
18
if( dim==3):
19
subspacePredicate = choice([
20
(randrange(1,8)*v[0] +randrange(1,8)*v[1] + randrange(2,6)*v[2]==0),
21
(randrange(1,8)*v[0] +randrange(1,8)*v[1] == randrange(2,6)*v[2]),
22
(randrange(1,8)*v[0] ==randrange(1,8)*v[1] + randrange(2,6)*v[2]),
23
(randrange(1,8)*v[1] ==randrange(1,8)*v[0] - randrange(2,6)*v[2]),
24
])
25
notsubspacePredicate = choice([
26
(v[0]^randrange(2,4) +randrange(1,8)*v[1] + randrange(2,6)*v[2]==0),
27
(v[1]^randrange(2,4) +randrange(1,8)*v[0] == randrange(2,6)*v[2]),
28
(randrange(1,8)*v[0] == randrange(2,6)*v[1]+v[2]^randrange(2,4) ),
29
(v[0]^randrange(2,4)*randrange(1,8)*v[1] + randrange(2,6)*v[2]==0),
30
(v[1]^2-randrange(2,8)*v[2]^2 == randrange(1,7)*v[0])
31
])
32
if( dim==4):
33
subspacePredicate = choice([
34
(randrange(1,8)*v[0] +randrange(1,8)*v[1] + randrange(2,6)*v[2]==randrange(2,7)*v[3]),
35
(randrange(1,8)*v[0] +randrange(1,8)*v[3] == randrange(2,6)*v[2]),
36
(randrange(2,8)*v[0]+randrange(1,7)*v[3] ==randrange(1,8)*v[1] + randrange(2,6)*v[2]),
37
(randrange(1,8)*v[1]-randrange(-6,7)*v[3] ==randrange(1,8)*v[0] - randrange(2,6)*v[2]),
38
])
39
notsubspacePredicate = choice([
40
(v[0]^randrange(2,4) +randrange(1,8)*v[1] + randrange(2,6)*v[2]==randrange(2,6)*v[3]),
41
(v[1]^randrange(2,4) +randrange(1,8)*v[0] == randrange(2,6)*v[2]),
42
(randrange(1,8)*v[0] == randrange(2,6)*v[1]+v[2]^randrange(2,4)-randrange(2,6)*v[3] ),
43
(v[0]^randrange(2,4)*randrange(1,8)*v[1] + randrange(2,6)*v[2]*v[3]==0),
44
(v[1]^2-randrange(2,8)*v[2]^2 == randrange(1,7)*v[0])
45
])
46
47
48
49
#Write sets in order subspace, not subspace
50
predicates=[subspacePredicate,notsubspacePredicate]
51
#Randomly swap order so 2nd is subspace
52
subspace = choice(["U","W"])
53
if(subspace=="W"):
54
predicates.reverse()
55
56
return {
57
"U": setBuilder(column_matrix(v),[predicates[0]]),
58
"W": setBuilder(column_matrix(v),[predicates[1]]),
59
"subspace": subspace,
60
"dim": dim
61
}
62