1# sys:=Ind2Diff([u[x,x]-u[x,y],u[x,y,y],u[x,y,z]],[x,y,z],[u]);
2
3LoadPackage( "RingsForHomalg" );
4
5Qxyz := HomalgFieldOfRationalsInDefaultCAS( ) * "x,y,z";
6A3 := RingOfDerivations( Qxyz, "Dx,Dy,Dz" );
7
8M1 := HomalgMatrix( "[ \
9Dx  \
10]", 1, 1, A3 );
11M2 := HomalgMatrix( "[ \
12Dx, \
13Dy  \
14]", 2, 1, A3 );
15M3 := HomalgMatrix( "[ \
16Dx, \
17Dy, \
18Dz  \
19]", 3, 1, A3 );
20M := DiagMat( [ M1, M2, M3 ] );
21M := ShallowCopy( M );	## copy M before setting entries
22SetIsMutableMatrix( M, true );
23M[ 1, 2 ] := "1";;
24M[ 2, 3 ] := "1";;
25M[ 3, 3 ] := "1";;
26MakeImmutable( M );
27
28tau1 := HomalgMatrix( "[ \
291, Dx, Dz, \
300,  0,  1, \
310,  1, Dy  \
32]", 3, 3, A3 );
33
34tau2 := HomalgMatrix( "[ \
350,  1, Dz+x*y, \
360,  0,      1, \
371, Dz,    x-y  \
38]", 3, 3, A3 );
39
40tau3 := HomalgMatrix( "[ \
411,  0, 0, \
421,  1, 0, \
430, -1, 1  \
44]", 3, 3, A3 );
45
46tau := tau1 * tau2 * tau3;
47
48LoadPackage( "Modules" );
49
50N := LeftPresentation( M * tau );
51
52M := LeftPresentation( M );
53
54C := 1 * A3 / LeftSubmodule( "Dx^2-Dx*Dy, Dx*Dy*Dz, Dx*Dy^2", A3 );
55
56tau := HomalgMap( tau, M, N );
57
58ByASmallerPresentation( N );
59
60DecideZero( tau );
61
62id := HomalgIdentityMap( M );
63
64