-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdemo.m2
78 lines (69 loc) · 1.78 KB
/
demo.m2
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
--Over a ci
--we can check if two modules or complexes build each other
restart
path = append(path, "~/Documents/GitHub/levels");
loadPackage "ThickSubcategories";
Q = QQ[x,y]
I = ideal"x2,y2"
R = Q/I
k = R^1/ideal"x,y"
M = R^1/ideal(x)
N = R^1/ideal(y)
isBuilt(M,N)--N doesn't build M
isBuilt(N,M)--M doesn't build N
isBuilt(k,M)--M doesn't build k
isBuilt(k,N)--N doesn't build k
--but M and N are both finite length
--so they are both built by k
isBuilt(M,k)
isBuilt(N,k)
--Over a non-ci
--we can still give negative answers
--and say M doesn't build N
--but we can't give positive answers without computing levels
restart
path = append(path, "~/Documents/GitHub/levels");
needsPackage "ThickSubcategories";
Q = QQ[a,b,c]
I = ideal"ab,bc"
R = Q / I
m = ideal vars R
k = R^1/ m
M = R^1 / (m^2)
time isBuilt(M,k)
time isBuilt(k,M)
--another non-ci example
restart
path = append(path, "~/Documents/GitHub/levels");
needsPackage "ThickSubcategories";
needsPackage "Complexes"
R = QQ[x,y]/ideal"x2,xy"
K = complex koszul(matrix{{x,y}})
M = complex(R^1/ideal"x")
N = complex(R^1/ideal"y")
time isBuilt(K,M)
time isBuilt(K,N)
--Both these modules M and N are NOT proxy small!
--A module is virtually small iff it builds the koszul complex
--fun examples of levels
restart
path = append(path, "~/Documents/GitHub/levels");
needsPackage "ThickSubcategories";
needsPackage "Complexes"
R = QQ[x]
M = R^1/ideal"x3"
N = R^1/ideal"x7"
L = R^1/ideal"x17"
K = R^1/ideal"x23"
time level(M,N)
time level(M,L)
time level(M,K)
restart
path = append(path, "~/Documents/GitHub/levels");
needsPackage "ThickSubcategories";
needsPackage "Complexes"
R = QQ[x,y,z]
M = complex koszul(matrix{{x*y,y*z,x*z}})
N = complex koszul(matrix{{x}})
time level(M,N)--number of steps to build N from M
time isBuilt(M,N)--but cannot build M from N