Merge remote-tracking branch 'refs/remotes/origin/team-review'
This commit is contained in:
commit
19998214e8
File diff suppressed because it is too large
Load Diff
@ -15,7 +15,7 @@
|
|||||||
" Load 1 ASDF system:\n",
|
" Load 1 ASDF system:\n",
|
||||||
" kenzo\n",
|
" kenzo\n",
|
||||||
"; Loading \"kenzo\"\n",
|
"; Loading \"kenzo\"\n",
|
||||||
"\n"
|
"..\n"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -102,21 +102,22 @@
|
|||||||
"2. BCC, an object of type CHAIN-COMPLEX, the bottom chain complex C. Its reader\n",
|
"2. BCC, an object of type CHAIN-COMPLEX, the bottom chain complex C. Its reader\n",
|
||||||
" function is BCC1.\n",
|
" function is BCC1.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"3. F, an object of type MORPHISM representing the morphism f. Its reader\n",
|
"3. F, an object of type MORPHISM representing the chain morphism f. Its reader\n",
|
||||||
" function is F1.\n",
|
" function is F1.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"4. G, an object of type MORPHISM representing the morphism g. Its reader\n",
|
"4. G, an object of type MORPHISM representing the chain morphism g. Its reader\n",
|
||||||
" function is G1.\n",
|
" function is G1.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"5. H, an object of type MORPHISM representing the morphism h. Its reader\n",
|
"5. H, an object of type MORPHISM representing the morphism of graded modules h.\n",
|
||||||
" function is H1.\n",
|
" Its reader function is H1.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"9. IDNM, an integer, a system-generated identifier for this object. Its reader\n",
|
"9. IDNM, an integer, a system-generated identifier for this object. Its reader\n",
|
||||||
" function is IDNM.\n",
|
" function is IDNM.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"10. ORGN, a list containg a comment indicating the origin of the object. The\n",
|
"10. ORGN, a list containg a comment indicating the origin of the object.\n",
|
||||||
" should be unique (per session), since it is used in the implementation for\n",
|
" This comment should be unique for a Kenzo session (between calls of\n",
|
||||||
" caching purposes. Its reader function is ORGN.\n",
|
" CAT-INIT), as it is used for caching purposes. Its reader function\n",
|
||||||
|
" is ORGN.\n",
|
||||||
"-----------------------------------------------------------------------------\""
|
"-----------------------------------------------------------------------------\""
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -152,11 +153,14 @@
|
|||||||
"Returns an instance of the class REDUCTION. The keyword arguments are as\n",
|
"Returns an instance of the class REDUCTION. The keyword arguments are as\n",
|
||||||
"follows:\n",
|
"follows:\n",
|
||||||
"\n",
|
"\n",
|
||||||
":F F, an object of type morphism representing the morphism f of a reduction\n",
|
":F F, an object of type MORPHISM representing the chain morphism f of a\n",
|
||||||
|
" reduction\n",
|
||||||
"\n",
|
"\n",
|
||||||
":G G, an object of type morphism representing the morphism g of a reduction\n",
|
":G G, an object of type MORPHISM representing the chain morphism g of a\n",
|
||||||
|
" reduction\n",
|
||||||
"\n",
|
"\n",
|
||||||
":H H, an object of type morphism representing the morphism h of a reduction\n",
|
":H H, an object of type MORPHISM representing the morphism of graded modules h\n",
|
||||||
|
" of a reduction\n",
|
||||||
"\n",
|
"\n",
|
||||||
":ORGN ORGN, a list containing a relevant and carefully chosen comment about\n",
|
":ORGN ORGN, a list containing a relevant and carefully chosen comment about\n",
|
||||||
" the origin of the chain complex. This comment should be unique\n",
|
" the origin of the chain complex. This comment should be unique\n",
|
||||||
@ -2173,7 +2177,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 64,
|
"execution_count": 65,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"collapsed": false
|
"collapsed": false
|
||||||
},
|
},
|
||||||
@ -2253,7 +2257,7 @@
|
|||||||
"NIL"
|
"NIL"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 64,
|
"execution_count": 65,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
|
|||||||
247
examples/diabolo.graphml
Normal file
247
examples/diabolo.graphml
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
|
||||||
|
<!--Created by yEd 3.14.4-->
|
||||||
|
<key attr.name="Description" attr.type="string" for="graph" id="d0"/>
|
||||||
|
<key for="port" id="d1" yfiles.type="portgraphics"/>
|
||||||
|
<key for="port" id="d2" yfiles.type="portgeometry"/>
|
||||||
|
<key for="port" id="d3" yfiles.type="portuserdata"/>
|
||||||
|
<key attr.name="url" attr.type="string" for="node" id="d4"/>
|
||||||
|
<key attr.name="description" attr.type="string" for="node" id="d5"/>
|
||||||
|
<key for="node" id="d6" yfiles.type="nodegraphics"/>
|
||||||
|
<key for="graphml" id="d7" yfiles.type="resources"/>
|
||||||
|
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
|
||||||
|
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
|
||||||
|
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
|
||||||
|
<graph edgedefault="directed" id="G">
|
||||||
|
<data key="d0"/>
|
||||||
|
<node id="n0">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="160.0" width="110.0" x="64.86431999999999" y="336.0"/>
|
||||||
|
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||||
|
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="53.0" y="78.0">
|
||||||
|
<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:Shape type="rectangle"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n1">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="10.0" width="10.0" x="171.0" y="331.0"/>
|
||||||
|
<y:Fill color="#000000" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="free" modelPosition="anywhere" textColor="#000000" visible="true" width="21.1240234375" x="-4.3388671875" y="-22.701171875">S1</y:NodeLabel>
|
||||||
|
<y:Shape type="ellipse"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n2">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="10.0" width="10.0" x="171.0" y="491.0"/>
|
||||||
|
<y:Fill color="#000000" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="free" modelPosition="anywhere" textColor="#000000" visible="true" width="21.1240234375" x="-5.56201171875" y="11.129404406250046">S0</y:NodeLabel>
|
||||||
|
<y:Shape type="ellipse"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n3">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="10.0" width="10.0" x="283.0" y="411.0"/>
|
||||||
|
<y:Fill color="#000000" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="free" modelPosition="anywhere" textColor="#000000" visible="true" width="21.1240234375" x="2.1067891496023776" y="-26.548438091286016">S2</y:NodeLabel>
|
||||||
|
<y:Shape type="ellipse"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n4">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="158.0" width="220.81920000000002" x="385.1808" y="337.0"/>
|
||||||
|
<y:Fill color="#C0C0C0" transparent="false"/>
|
||||||
|
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="custom" textColor="#000000" visible="true" width="36.6962890625" x="48.96920625000007" y="68.42431640625">S345<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="0.0" nodeRatioX="-0.27823845820472104" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:Shape type="diamond"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n5">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="160.0" width="110.0" x="496.39840000000004" y="336.0"/>
|
||||||
|
<y:Fill color="#FFFFFF" transparent="false"/>
|
||||||
|
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" modelName="custom" textColor="#000000" visible="true" width="4.0" x="53.0" y="78.0">
|
||||||
|
<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:Shape type="rectangle"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n6">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="10.0" width="10.0" x="491.0" y="331.0"/>
|
||||||
|
<y:Fill color="#000000" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="free" modelPosition="anywhere" textColor="#000000" visible="true" width="21.1240234375" x="-5.56201171875" y="-22.53783399375004">S4</y:NodeLabel>
|
||||||
|
<y:Shape type="ellipse"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n7">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="10.0" width="10.0" x="379.0" y="411.0"/>
|
||||||
|
<y:Fill color="#000000" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="custom" textColor="#000000" visible="true" width="21.1240234375" x="-15.1240234375" y="-26.074938684949984">S3<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.21596320096158295" labelRatioY="0.5" nodeRatioX="-0.5" nodeRatioY="-0.5" offsetX="0.0" offsetY="-4.923571497449984" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:Shape type="ellipse"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n8">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="10.0" width="10.0" x="491.0" y="491.0"/>
|
||||||
|
<y:Fill color="#000000" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="free" modelPosition="anywhere" textColor="#000000" visible="true" width="21.1240234375" x="-5.56201171875" y="10.057724406250031">S5</y:NodeLabel>
|
||||||
|
<y:Shape type="ellipse"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n9">
|
||||||
|
<data key="d6">
|
||||||
|
<y:ShapeNode>
|
||||||
|
<y:Geometry height="30.0" width="74.0" x="299.0" y="497.00000000000006"/>
|
||||||
|
<y:Fill hasColor="false" transparent="false"/>
|
||||||
|
<y:BorderStyle hasColor="false" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Garamond" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="22.0" modelName="custom" textColor="#000000" visible="true" width="54.65625" x="9.671875" y="3.999999999999943">Diabolo<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:Shape type="rectangle"/>
|
||||||
|
</y:ShapeNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<edge id="e0" source="n3" target="n2">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="2.0"/>
|
||||||
|
<y:Arrows source="standard" target="none"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="side_slider" preferredPlacement="anywhere" ratio="0.0" textColor="#000000" visible="true" width="28.91015625" x="-39.96649169921875" y="30.547494070870528">S02<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e1" source="n2" target="n1">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="2.0"/>
|
||||||
|
<y:Arrows source="none" target="standard"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="side_slider" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="28.91015625" x="-30.91015625" y="-85.57568359375">S01<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e2" source="n3" target="n1">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="2.0"/>
|
||||||
|
<y:Arrows source="standard" target="none"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="side_slider" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="28.91015625" x="-66.38641357421875" y="-70.5702340262277">S12<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e3" source="n3" target="n7">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="2.0"/>
|
||||||
|
<y:Arrows source="none" target="standard"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="side_slider" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="28.91015625" x="28.544921875" y="2.0">S23<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e4" source="n7" target="n6">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="2.0"/>
|
||||||
|
<y:Arrows source="none" target="standard"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="side_slider" preferredPlacement="anywhere" ratio="0.0" textColor="#000000" visible="true" width="28.91015625" x="11.05633544921875" y="-51.69886125837053">S34<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e5" source="n8" target="n7">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="2.0"/>
|
||||||
|
<y:Arrows source="standard" target="none"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="side_slider" preferredPlacement="anywhere" ratio="1.0" textColor="#000000" visible="true" width="28.91015625" x="-92.80633544921875" y="-43.64012799944197">S35<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e6" source="n6" target="n8">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="2.0"/>
|
||||||
|
<y:Arrows source="none" target="standard"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="14" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="side_slider" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="28.91015625" x="2.0" y="64.42431640625">S45<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
</graph>
|
||||||
|
<data key="d7">
|
||||||
|
<y:Resources/>
|
||||||
|
</data>
|
||||||
|
</graphml>
|
||||||
117
examples/diabolo.svg
Normal file
117
examples/diabolo.svg
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-opacity="1" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="573" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="249" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto">
|
||||||
|
<!--Generated by ySVG 2.5-->
|
||||||
|
<defs id="genericDefs"/>
|
||||||
|
<g>
|
||||||
|
<defs id="defs1">
|
||||||
|
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
|
||||||
|
<path d="M0 0 L573 0 L573 249 L0 249 L0 0 Z"/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
|
||||||
|
<path d="M49 293 L622 293 L622 542 L49 542 L49 293 Z"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="translate(-49,-293)" stroke="white">
|
||||||
|
<rect x="49" width="573" height="249" y="293" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke="white">
|
||||||
|
<rect x="64.8643" width="110" height="160" y="336" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
<circle fill="black" r="5" clip-path="url(#clipPath2)" cx="176" cy="336" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="168.6611" xml:space="preserve" y="324.374" clip-path="url(#clipPath2)" stroke="none">S1</text>
|
||||||
|
<circle fill="none" r="5" clip-path="url(#clipPath2)" cx="176" cy="336"/>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)">
|
||||||
|
<circle r="5" clip-path="url(#clipPath2)" cx="176" cy="496" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="167.438" xml:space="preserve" y="518.2046" clip-path="url(#clipPath2)" stroke="none">S0</text>
|
||||||
|
<circle fill="none" r="5" clip-path="url(#clipPath2)" cx="176" cy="496"/>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)">
|
||||||
|
<circle r="5" clip-path="url(#clipPath2)" cx="288" cy="416" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="287.1068" xml:space="preserve" y="400.5268" clip-path="url(#clipPath2)" stroke="none">S2</text>
|
||||||
|
<circle fill="none" r="5" clip-path="url(#clipPath2)" cx="288" cy="416"/>
|
||||||
|
</g>
|
||||||
|
<g fill="silver" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke="silver">
|
||||||
|
<path d="M385.1808 416 L495.5904 337 L606 416 L495.5904 495 Z" fill-rule="evenodd" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="436.15" xml:space="preserve" y="421.4995" clip-path="url(#clipPath2)" stroke="none">S345</text>
|
||||||
|
</g>
|
||||||
|
<g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke="white">
|
||||||
|
<rect x="496.3984" width="110" height="160" y="336" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
<circle fill="black" r="5" clip-path="url(#clipPath2)" cx="496" cy="336" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="487.438" xml:space="preserve" y="324.5374" clip-path="url(#clipPath2)" stroke="none">S4</text>
|
||||||
|
<circle fill="none" r="5" clip-path="url(#clipPath2)" cx="496" cy="336"/>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)">
|
||||||
|
<circle r="5" clip-path="url(#clipPath2)" cx="384" cy="416" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="365.876" xml:space="preserve" y="401.0002" clip-path="url(#clipPath2)" stroke="none">S3</text>
|
||||||
|
<circle fill="none" r="5" clip-path="url(#clipPath2)" cx="384" cy="416"/>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)">
|
||||||
|
<circle r="5" clip-path="url(#clipPath2)" cx="496" cy="496" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="487.438" xml:space="preserve" y="517.1329" clip-path="url(#clipPath2)" stroke="none">S5</text>
|
||||||
|
<circle fill="none" r="5" clip-path="url(#clipPath2)" cx="496" cy="496"/>
|
||||||
|
<text x="310.6719" font-size="16px" y="516.7891" clip-path="url(#clipPath2)" font-family="'Garamond'" stroke="none" font-weight="normal" xml:space="preserve">Diabolo</text>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke-linecap="butt">
|
||||||
|
<path fill="none" d="M176 491 L176 350" clip-path="url(#clipPath2)"/>
|
||||||
|
<path d="M176 341 L170.375 354.5 L176 351.125 L181.625 354.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="147.0898" xml:space="preserve" y="421.4995" clip-path="url(#clipPath2)" stroke="none">S01</text>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke-linecap="butt">
|
||||||
|
<path fill="none" d="M276.6077 424.1373 L180.0687 493.0938" clip-path="url(#clipPath2)"/>
|
||||||
|
<path d="M283.9313 418.9062 L269.6765 422.1756 L275.6923 424.7912 L276.2154 431.3301 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="245.9648" xml:space="preserve" y="465.5289" clip-path="url(#clipPath2)" stroke="none">S02</text>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke-linecap="butt">
|
||||||
|
<path fill="none" d="M276.6077 407.8627 L180.0687 338.9062" clip-path="url(#clipPath2)"/>
|
||||||
|
<path d="M283.9313 413.0938 L276.2154 400.6699 L275.6923 407.2088 L269.6765 409.8244 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="219.5449" xml:space="preserve" y="358.5988" clip-path="url(#clipPath2)" stroke="none">S12</text>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke-linecap="butt">
|
||||||
|
<path fill="none" d="M293 416 L370 416" clip-path="url(#clipPath2)"/>
|
||||||
|
<path d="M379 416 L365.5 410.375 L368.875 416 L365.5 421.625 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="323.5449" xml:space="preserve" y="434.0752" clip-path="url(#clipPath2)" stroke="none">S23</text>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke-linecap="butt">
|
||||||
|
<path fill="none" d="M388.0687 413.0938 L484.6077 344.1373" clip-path="url(#clipPath2)"/>
|
||||||
|
<path d="M491.9313 338.9062 L477.6765 342.1756 L483.6923 344.7912 L484.2154 351.3301 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="401.125" xml:space="preserve" y="377.4702" clip-path="url(#clipPath2)" stroke="none">S34</text>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke-linecap="butt">
|
||||||
|
<path fill="none" d="M496 341 L496 482" clip-path="url(#clipPath2)"/>
|
||||||
|
<path d="M496 491 L501.625 477.5 L496 480.875 L490.375 477.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="500" xml:space="preserve" y="421.4995" clip-path="url(#clipPath2)" stroke="none">S45</text>
|
||||||
|
</g>
|
||||||
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-49,-293)" stroke-linecap="butt">
|
||||||
|
<path fill="none" d="M484.6077 487.8627 L388.0687 418.9062" clip-path="url(#clipPath2)"/>
|
||||||
|
<path d="M491.9313 493.0938 L484.2154 480.6699 L483.6923 487.2088 L477.6765 489.8244 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||||
|
</g>
|
||||||
|
<g font-size="14px" stroke-linecap="butt" transform="matrix(1,0,0,1,-49,-293)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" font-weight="bold" stroke-miterlimit="1.45">
|
||||||
|
<text x="401.125" xml:space="preserve" y="465.5289" clip-path="url(#clipPath2)" stroke="none">S35</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 11 KiB |
@ -301,6 +301,7 @@
|
|||||||
CHCM-HOMOLOGY-GEN
|
CHCM-HOMOLOGY-GEN
|
||||||
CHCM-MAT
|
CHCM-MAT
|
||||||
HOMOLOGIE
|
HOMOLOGIE
|
||||||
|
MAT-ALEAT
|
||||||
|
|
||||||
;; k-pi-n.lisp
|
;; k-pi-n.lisp
|
||||||
|
|
||||||
@ -578,4 +579,3 @@
|
|||||||
Z2-WHITEHEAD-SINTR
|
Z2-WHITEHEAD-SINTR
|
||||||
|
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|||||||
@ -60,8 +60,8 @@
|
|||||||
(format t "~% FILE ~2D: ~A" i (car mark)))
|
(format t "~% FILE ~2D: ~A" i (car mark)))
|
||||||
|
|
||||||
(DEFCONSTANT +SOURCE-EXTENSION+
|
(DEFCONSTANT +SOURCE-EXTENSION+
|
||||||
#+(or allegro clisp lispworks) "cl"
|
#+(or allegro lispworks) "cl"
|
||||||
#+(or ccl ecl sbcl) "lisp"
|
#+(or clisp ccl ecl sbcl) "lisp"
|
||||||
#-(or allegro ccl clisp ecl lispworks sbcl)
|
#-(or allegro ccl clisp ecl lispworks sbcl)
|
||||||
(error "Not an Allegro or CCL or CLisp or LispWorks or SBCL environment."))
|
(error "Not an Allegro or CCL or CLisp or LispWorks or SBCL environment."))
|
||||||
|
|
||||||
@ -79,6 +79,8 @@
|
|||||||
(DEFVAR *CMBN-CONTROL*)
|
(DEFVAR *CMBN-CONTROL*)
|
||||||
(SETF *CMBN-CONTROL* T)
|
(SETF *CMBN-CONTROL* T)
|
||||||
|
|
||||||
|
#+SBCL (DECLAIM (SB-EXT:MUFFLE-CONDITIONS style-warning compiler-note))
|
||||||
|
|
||||||
(DEFUN COMPILE-FILES ()
|
(DEFUN COMPILE-FILES ()
|
||||||
(format t "~%*CMBN-CONTROL* = ~A~2%" *cmbn-control*)
|
(format t "~%*CMBN-CONTROL* = ~A~2%" *cmbn-control*)
|
||||||
(mapc #'(lambda (file-name)
|
(mapc #'(lambda (file-name)
|
||||||
|
|||||||
@ -239,10 +239,12 @@ follows:
|
|||||||
of the differential homomorphism, either by generator or by
|
of the differential homomorphism, either by generator or by
|
||||||
combination. The default is :GNRT
|
combination. The default is :GNRT
|
||||||
|
|
||||||
:ORGN ORGN, a list containing a relevant and carefully chosen comment about
|
:ORGN ORGN, a list which is the copy of a Lisp statement, in principle the
|
||||||
the origin of the chain complex. This comment should be unique
|
statement which was at the origin of the creation of this Kenzo
|
||||||
for a Kenzo session (between calls of CAT-INIT), as it is used
|
object. A caching process, using this slot, prevents the creation
|
||||||
for caching purposes.
|
of multiple copies of the same mathematical object, which is
|
||||||
|
important for efficiency. It is used also for debugging and
|
||||||
|
analyzing the program.
|
||||||
|
|
||||||
Use this function instead of creating instances via the standard constructor
|
Use this function instead of creating instances via the standard constructor
|
||||||
MAKE-INSTANCE.
|
MAKE-INSTANCE.
|
||||||
@ -308,10 +310,12 @@ follows:
|
|||||||
of the differential homomorphism, either by generator or by
|
of the differential homomorphism, either by generator or by
|
||||||
combination. The default is :GNRT
|
combination. The default is :GNRT
|
||||||
|
|
||||||
:ORGN ORGN, a list containing a relevant and carefully chosen comment about
|
:ORGN ORGN, a list which is the copy of a Lisp statement, in principle the
|
||||||
the origin of the chain complex. This comment should be unique
|
statement which was at the origin of the creation of this Kenzo
|
||||||
for a Kenzo session (between calls of CAT-INIT), as it is used
|
object. A caching process, using this slot, prevents the creation
|
||||||
for caching purposes.
|
of multiple copies of the same mathematical object, which is
|
||||||
|
important for efficiency. It is used also for debugging and
|
||||||
|
analyzing the program.
|
||||||
|
|
||||||
Use this function instead of creating instances via the standard constructor
|
Use this function instead of creating instances via the standard constructor
|
||||||
MAKE-INSTANCE.
|
MAKE-INSTANCE.
|
||||||
|
|||||||
106
src/classes.lisp
106
src/classes.lisp
@ -178,16 +178,25 @@ Intances of this class represent chain complexes. The class has 8 slots:
|
|||||||
4. DFFR, the differential morphism, an instance of the class MORPHISM. Its
|
4. DFFR, the differential morphism, an instance of the class MORPHISM. Its
|
||||||
reader function is DFFR1.
|
reader function is DFFR1.
|
||||||
|
|
||||||
5. GRMD, ??? Its reader function is GRMD.
|
5. GRMD, refers to some chain-complex considered as a reference for the
|
||||||
|
underlying graded module structure. Sometimes, it is better to check two
|
||||||
|
chain-complexes have the same underlying graded module. Typically if C1 is
|
||||||
|
a chain-complex and C2 is obtained from C1 by perturbing the differential,
|
||||||
|
then (eq (grmd C1) (grmd C2)) should return T. Its reader function is GRMD.
|
||||||
|
|
||||||
6. EFHM, ??? Its reader function is EFHM.
|
6. EFHM, if the effective homology of the chain complex has already been
|
||||||
|
computed, then this slot points to the HOMOTOPY-EQUIVALENCE which IS the
|
||||||
|
effective homology of this object. Otherwise the slot is unbound. Its
|
||||||
|
reader function is EFHM.
|
||||||
|
|
||||||
7. IDNM, an integer, a system generated identifier for this object. Its reader
|
7. IDNM, an integer, a system generated identifier for this object. Its reader
|
||||||
function is IDNM.
|
function is IDNM.
|
||||||
|
|
||||||
8. ORGN, a list containg a comment indicating the origin of the object. The
|
8. ORGN, a list which is the copy of a Lisp statement, in principle the
|
||||||
should be unique (per session), since it is used in the implementation for
|
statement which was at the origin of the creation of this Kenzo object.
|
||||||
caching purposes. Its reader function is ORGN.
|
A caching process, using this slot, prevents the creation of multiple
|
||||||
|
copies of the same mathematical object, which is important for efficiency.
|
||||||
|
It is used also for debugging and analyzing the program.
|
||||||
-----------------------------------------------------------------------------"))
|
-----------------------------------------------------------------------------"))
|
||||||
|
|
||||||
|
|
||||||
@ -240,11 +249,22 @@ degree -1. The class has 10 slots:
|
|||||||
|
|
||||||
3. DEGR, an integer, the degree of the morphism. Its reader function is DEGR.
|
3. DEGR, an integer, the degree of the morphism. Its reader function is DEGR.
|
||||||
|
|
||||||
4. INTR, a Lisp function implementing the morphism, taking account of the
|
4. INTR, a Lisp INTeRnal function implementing the morphism, taking account
|
||||||
strategy STRT. Its reader function is INTR.
|
of the strategy STRT. Its reader function is INTR.
|
||||||
|
|
||||||
5. STRT, a symbol, one of :GNRT or :CMBN. Its reader function is STRT.
|
5. STRT, a symbol, one of :GNRT or :CMBN. Its reader function is STRT.
|
||||||
|
|
||||||
|
If this slot is :GNRT, the implementation of INTR is a function:
|
||||||
|
(function (degr gnrt) cmbn)
|
||||||
|
and for any call of this function, the result is stored in the slot
|
||||||
|
RSLTS to avoid later a possibly long recalculation for the same
|
||||||
|
argument.
|
||||||
|
|
||||||
|
If this slot is :CMBN, the implementation of INTR is a function:
|
||||||
|
(function (cmbn) cmbn)
|
||||||
|
and the RSLTS slot is not used. Think for example to an identity or
|
||||||
|
null function, where storing a result is wasted time.
|
||||||
|
|
||||||
6. ???-CLNM, an integer updated by the system for internal statistics. Its
|
6. ???-CLNM, an integer updated by the system for internal statistics. Its
|
||||||
reader function is ???-CLNM.
|
reader function is ???-CLNM.
|
||||||
|
|
||||||
@ -257,9 +277,11 @@ degree -1. The class has 10 slots:
|
|||||||
9. IDNM, an integer, a system-generated identifier for this object. Its reader
|
9. IDNM, an integer, a system-generated identifier for this object. Its reader
|
||||||
function is IDNM.
|
function is IDNM.
|
||||||
|
|
||||||
10. ORGN, a list containg a comment indicating the origin of the object. The
|
10. ORGN, a list which is the copy of a Lisp statement, in principle the
|
||||||
should be unique (per session), since it is used in the implementation for
|
statement which was at the origin of the creation of this Kenzo object.
|
||||||
caching purposes. Its reader function is ORGN.
|
A caching process, using this slot, prevents the creation of multiple
|
||||||
|
copies of the same mathematical object, which is important for efficiency.
|
||||||
|
It is used also for debugging and analyzing the program.
|
||||||
-----------------------------------------------------------------------------"))
|
-----------------------------------------------------------------------------"))
|
||||||
|
|
||||||
|
|
||||||
@ -308,21 +330,23 @@ The class has 7 slots:
|
|||||||
2. BCC, an object of type CHAIN-COMPLEX, the bottom chain complex C. Its reader
|
2. BCC, an object of type CHAIN-COMPLEX, the bottom chain complex C. Its reader
|
||||||
function is BCC1.
|
function is BCC1.
|
||||||
|
|
||||||
3. F, an object of type MORPHISM representing the morphism f. Its reader
|
3. F, an object of type MORPHISM representing the chain morphism f. Its reader
|
||||||
function is F1.
|
function is F1.
|
||||||
|
|
||||||
4. G, an object of type MORPHISM representing the morphism g. Its reader
|
4. G, an object of type MORPHISM representing the chain morphism g. Its reader
|
||||||
function is G1.
|
function is G1.
|
||||||
|
|
||||||
5. H, an object of type MORPHISM representing the morphism h. Its reader
|
5. H, an object of type MORPHISM representing the morphism of graded modules h.
|
||||||
function is H1.
|
Its reader function is H1.
|
||||||
|
|
||||||
9. IDNM, an integer, a system-generated identifier for this object. Its reader
|
6. IDNM, an integer, a system-generated identifier for this object. Its reader
|
||||||
function is IDNM.
|
function is IDNM.
|
||||||
|
|
||||||
10. ORGN, a list containg a comment indicating the origin of the object. The
|
7. ORGN, a list which is the copy of a Lisp statement, in principle the
|
||||||
should be unique (per session), since it is used in the implementation for
|
statement which was at the origin of the creation of this Kenzo object.
|
||||||
caching purposes. Its reader function is ORGN.
|
A caching process, using this slot, prevents the creation of multiple
|
||||||
|
copies of the same mathematical object, which is important for efficiency.
|
||||||
|
It is used also for debugging and analyzing the program.
|
||||||
-----------------------------------------------------------------------------"))
|
-----------------------------------------------------------------------------"))
|
||||||
|
|
||||||
|
|
||||||
@ -352,7 +376,14 @@ The class has 7 slots:
|
|||||||
;; IDentification NuMber
|
;; IDentification NuMber
|
||||||
(idnm :type fixnum :initform (incf *idnm-counter*) :reader idnm)
|
(idnm :type fixnum :initform (incf *idnm-counter*) :reader idnm)
|
||||||
;; ORiGiN
|
;; ORiGiN
|
||||||
(orgn :type list :initarg :orgn :reader orgn)))
|
(orgn :type list :initarg :orgn :reader orgn))
|
||||||
|
(:documentation
|
||||||
|
"----------------------------------------------------------------[class-doc]
|
||||||
|
HOMOTOPY-EQUIVALENCE
|
||||||
|
A homotopy-equivalence is essentially a pair of respective reductions from an
|
||||||
|
intermediate chain complex TCC to the LBCC (left bottom) and RBCC (rigth
|
||||||
|
bottom) chain complexes. It is an equivalence between LBCC and RBCC.
|
||||||
|
-----------------------------------------------------------------------------"))
|
||||||
|
|
||||||
#+allegro
|
#+allegro
|
||||||
(eval-when (:compile-toplevel :load-toplevel :execute)
|
(eval-when (:compile-toplevel :load-toplevel :execute)
|
||||||
@ -365,9 +396,31 @@ The class has 7 slots:
|
|||||||
|
|
||||||
|
|
||||||
(DEFSTRUCT (matrice (:conc-name nil))
|
(DEFSTRUCT (matrice (:conc-name nil))
|
||||||
|
"------------------------------------------------------------------[type-doc]
|
||||||
|
MATRICE
|
||||||
|
Slots: (leftcol uplig)
|
||||||
|
A MATRICE is made of two vectors LEFTCOL and UPLIG. LEFTCOL is a
|
||||||
|
vector of size m+1 if m is the number of rows of the matrix, UPLIG is
|
||||||
|
a vector of size n+1 if n is the number of columns.
|
||||||
|
Every element of LEFTCOL and UPLIG is a T-MAT with the value NIL
|
||||||
|
indicating it is a fake term.
|
||||||
|
------------------------------------------------------------------------------"
|
||||||
leftcol uplig)
|
leftcol uplig)
|
||||||
|
|
||||||
(DEFSTRUCT (t-mat (:conc-name nil))
|
(DEFSTRUCT (t-mat (:conc-name nil))
|
||||||
|
"------------------------------------------------------------------[type-doc]
|
||||||
|
T-MAT
|
||||||
|
Slots: (val ilig icol left up)
|
||||||
|
A T-MAT (= Terme de Matrice) has five components:
|
||||||
|
|
||||||
|
VAL = A value, an integer, in principle a non-null integer.
|
||||||
|
ILIG = the line (row is better) index of this term
|
||||||
|
ICOL = the column index of this term
|
||||||
|
LEFT = a pointer to the next term on the left on the same line,
|
||||||
|
or to a fake term, an element of LEFTCOL of the matrice.
|
||||||
|
UP = a pointer to the next term above on the same column,
|
||||||
|
or to a fake term, an element of UPLIG of the matrice.
|
||||||
|
------------------------------------------------------------------------------"
|
||||||
val ilig icol left up)
|
val ilig icol left up)
|
||||||
|
|
||||||
|
|
||||||
@ -379,11 +432,26 @@ The class has 7 slots:
|
|||||||
(conx (:type '(member 0 1)))
|
(conx (:type '(member 0 1)))
|
||||||
(icon (:type 'gnrt)))
|
(icon (:type 'gnrt)))
|
||||||
|
|
||||||
|
;; Given a morphism f : C1 -> C0 between two chain complexes,
|
||||||
|
;; the cone of f is a chain complex made of C0 as such,
|
||||||
|
;; C1 suspended.
|
||||||
|
;; The differential of the C0 component is unchanged.
|
||||||
|
;; If x is an element of C1, then d_cone(x) = -dx + fx
|
||||||
|
;; with dx computed as in the original C1.
|
||||||
|
;; A CONE generator is an conx 0 (resp. 1) and
|
||||||
|
;; and an icon (= internal cone generator) being a
|
||||||
|
;; generator of C0 (resp. C1).
|
||||||
|
|
||||||
(DEFSTRUCT (BICN (:conc-name nil) (:print-function bicn-print))
|
(DEFSTRUCT (BICN (:conc-name nil) (:print-function bicn-print))
|
||||||
(bcnx (:type '(member :bcnb :bcnc :bcnd)))
|
(bcnx (:type '(member :bcnb :bcnc :bcnd)))
|
||||||
(ibicn (:type 'gnrt)))
|
(ibicn (:type 'gnrt)))
|
||||||
|
|
||||||
|
;; Analogous with two morphisms f: B -> C and g: D -> C.
|
||||||
|
|
||||||
|
;; Intended to become the central part of a zigzag :
|
||||||
|
;; A <- B -> C <- D -> E
|
||||||
|
;; The key structure to compose two equivalences:
|
||||||
|
;; A <- B -> C and C <- D -> E
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; TENSOR-PRODUCTS
|
;;; TENSOR-PRODUCTS
|
||||||
|
|||||||
@ -137,8 +137,8 @@ CMBN
|
|||||||
Args: (degr &rest rest)
|
Args: (degr &rest rest)
|
||||||
Returns a combination of degree DEGR from a sum of terms provided as a sequence
|
Returns a combination of degree DEGR from a sum of terms provided as a sequence
|
||||||
CF1 GNRT1 CF2 GNRT2 ... CFn GNRTn of coefficient / generator pairs in REST.
|
CF1 GNRT1 CF2 GNRT2 ... CFn GNRTn of coefficient / generator pairs in REST.
|
||||||
REST can be of arbitrary even length and can be empty, in which case the
|
REST can be of arbitrary length including NIL, in which case the combination
|
||||||
combination is an instance of the null combination of degree DEGR.
|
is an instance of the null combination of degree DEGR.
|
||||||
------------------------------------------------------------------------------"
|
------------------------------------------------------------------------------"
|
||||||
(the cmbn
|
(the cmbn
|
||||||
(make-cmbn :degr degr
|
(make-cmbn :degr degr
|
||||||
|
|||||||
@ -45,16 +45,21 @@ Args: (&key f g h orgn)
|
|||||||
Returns an instance of the class REDUCTION. The keyword arguments are as
|
Returns an instance of the class REDUCTION. The keyword arguments are as
|
||||||
follows:
|
follows:
|
||||||
|
|
||||||
:F F, an object of type morphism representing the morphism f of a reduction
|
:F F, an object of type MORPHISM representing the chain morphism f of a
|
||||||
|
reduction
|
||||||
|
|
||||||
:G G, an object of type morphism representing the morphism g of a reduction
|
:G G, an object of type MORPHISM representing the chain morphism g of a
|
||||||
|
reduction
|
||||||
|
|
||||||
:H H, an object of type morphism representing the morphism h of a reduction
|
:H H, an object of type MORPHISM representing the morphism of graded modules h
|
||||||
|
of a reduction
|
||||||
|
|
||||||
:ORGN ORGN, a list containing a relevant and carefully chosen comment about
|
:ORGN ORGN, a list which is the copy of a Lisp statement, in principle the
|
||||||
the origin of the chain complex. This comment should be unique
|
statement which was at the origin of the creation of this Kenzo
|
||||||
for a Kenzo session (between calls of CAT-INIT), as it is used
|
object. A caching process, using this slot, prevents the creation
|
||||||
for caching purposes.
|
of multiple copies of the same mathematical object, which is
|
||||||
|
important for efficiency. It is used also for debugging and
|
||||||
|
analyzing the program.
|
||||||
|
|
||||||
Use this function instead of creating instances via the standard constructor
|
Use this function instead of creating instances via the standard constructor
|
||||||
MAKE-INSTANCE.
|
MAKE-INSTANCE.
|
||||||
|
|||||||
@ -76,6 +76,11 @@ and returns VALUE.
|
|||||||
|
|
||||||
|
|
||||||
(DEFMACRO CFFC (term)
|
(DEFMACRO CFFC (term)
|
||||||
|
"-----------------------------------------------------------------[macro-doc]
|
||||||
|
CFFC
|
||||||
|
Args: (term)
|
||||||
|
Returns the the coefficient (integer) of a term.
|
||||||
|
------------------------------------------------------------------------------"
|
||||||
`(car ,term))
|
`(car ,term))
|
||||||
|
|
||||||
|
|
||||||
@ -84,6 +89,11 @@ and returns VALUE.
|
|||||||
|
|
||||||
|
|
||||||
(DEFMACRO GNRT (term)
|
(DEFMACRO GNRT (term)
|
||||||
|
"-----------------------------------------------------------------[macro-doc]
|
||||||
|
GNRT
|
||||||
|
Args: (term)
|
||||||
|
Returns the the generator of a term.
|
||||||
|
------------------------------------------------------------------------------"
|
||||||
`(cdr ,term))
|
`(cdr ,term))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
(in-package :kenzo-test)
|
(in-package :kenzo-test)
|
||||||
|
|
||||||
(in-suite :kenzo)
|
(in-suite :kenzo)
|
||||||
@ -59,17 +58,17 @@
|
|||||||
(defun random-abar1 (length)
|
(defun random-abar1 (length)
|
||||||
(let ((rslt nil))
|
(let ((rslt nil))
|
||||||
(dotimes (i length)
|
(dotimes (i length)
|
||||||
(let* ((gmsm (random (cat:mask 7)))
|
(let* ((gmsm (random (cat:mask 6)))
|
||||||
(dmns (1- (logcount gmsm))))
|
(dmns (1- (logcount gmsm))))
|
||||||
(when (plusp dmns)
|
(when (plusp dmns)
|
||||||
(push (cat:brgn (1+ dmns) (cat:d gmsm)) rslt))))
|
(push (cat:brgn (1+ dmns) gmsm) rslt))))
|
||||||
(cat:make-abar :list rslt)))
|
(cat:make-abar :list rslt)))
|
||||||
|
|
||||||
|
|
||||||
(test vrtc-bar
|
(test vrtc-bar
|
||||||
(progn
|
(progn
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(let ((v (cat:vrtc-bar (cat:soft-delta-infinity))))
|
(let ((v (cat:vrtc-bar (cat:delta-infinity))))
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(print (random-abar1 5)))
|
(print (random-abar1 5)))
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
@ -92,7 +91,6 @@
|
|||||||
(funcall r 11 (cat:abar 3 '(2 3) 3 '(-2 -3) 2 '(-2) 3 '(-2 -3)))))
|
(funcall r 11 (cat:abar 3 '(2 3) 3 '(-2 -3) 2 '(-2) 3 '(-2 -3)))))
|
||||||
|
|
||||||
|
|
||||||
#|
|
|
||||||
(test bar-hrzn-dffr
|
(test bar-hrzn-dffr
|
||||||
(progn
|
(progn
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
@ -112,7 +110,7 @@
|
|||||||
(print (cat:? h (cat:? h (apply #'+ (mapcar #'car
|
(print (cat:? h (cat:? h (apply #'+ (mapcar #'car
|
||||||
(cat:abar-list abar)))
|
(cat:abar-list abar)))
|
||||||
abar)))))))
|
abar)))))))
|
||||||
|#
|
|
||||||
|
|
||||||
(test bar
|
(test bar
|
||||||
(progn
|
(progn
|
||||||
@ -177,7 +175,6 @@
|
|||||||
3 (cat:crpr 0 14 0 14))))))
|
3 (cat:crpr 0 14 0 14))))))
|
||||||
|
|
||||||
|
|
||||||
#|
|
|
||||||
(test vrtc-bar1
|
(test vrtc-bar1
|
||||||
(progn
|
(progn
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
@ -231,7 +228,7 @@
|
|||||||
(aleat-bc)
|
(aleat-bc)
|
||||||
;;(loop (c))
|
;;(loop (c))
|
||||||
(dotimes (i 10) (c))))) ;; degrees >= 15 is possible => error.
|
(dotimes (i 10) (c))))) ;; degrees >= 15 is possible => error.
|
||||||
|#
|
|
||||||
|
|
||||||
(test homology
|
(test homology
|
||||||
(progn
|
(progn
|
||||||
|
|||||||
@ -1,19 +1,12 @@
|
|||||||
|
|
||||||
(in-package :kenzo-test)
|
(in-package :kenzo-test)
|
||||||
|
|
||||||
(in-suite :kenzo)
|
(in-suite :kenzo)
|
||||||
|
|
||||||
#|
|
|
||||||
(test cs-hat-u-t
|
(test cs-hat-u-t
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(let* ((c (cat:cs-hat-u-t (cat:k-z-1)))
|
(let ((c (cat:cs-hat-u-t (cat:k-z-1)))
|
||||||
(abar (random-abar 8 4))
|
abar-degr
|
||||||
(abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
gnrt)
|
||||||
(gnrt (cat:tnpr 5 (cat:tnpr 3 (cat:gbar 3 0 '(1 2) 0 '(3) 0 '())
|
|
||||||
2 '(4 5))
|
|
||||||
abar-degr abar)))
|
|
||||||
(cat:? c (+ 5 abar-degr) gnrt)
|
|
||||||
(is (cat:cmbn-zero-p (cat:? c (cat:? c (+ 5 abar-degr) gnrt))))
|
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(let ((abar (random-abar 8 4)))
|
(let ((abar (random-abar 8 4)))
|
||||||
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
||||||
@ -53,20 +46,14 @@
|
|||||||
(print (cat:? c (+ 4 abar-degr) gnrt))
|
(print (cat:? c (+ 4 abar-degr) gnrt))
|
||||||
(is (cat:cmbn-zero-p (cat:? c (cat:? c (+ 4 abar-degr)
|
(is (cat:cmbn-zero-p (cat:? c (cat:? c (+ 4 abar-degr)
|
||||||
gnrt)))))))))
|
gnrt)))))))))
|
||||||
|#
|
|
||||||
|
|
||||||
#|
|
|
||||||
(test cs-hat-t-u
|
(test cs-hat-t-u
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(dotimes (i 5) (print (random-abar 8 4)))
|
(dotimes (i 5) (print (random-abar 8 4)))
|
||||||
(let* ((c (cat:cs-hat-t-u (cat:k-z-1)))
|
(let ((c (cat:cs-hat-t-u (cat:k-z-1)))
|
||||||
(abar (random-abar 8 4))
|
abar-degr
|
||||||
(abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
gnrt)
|
||||||
(gnrt (cat:tnpr 5 (cat:tnpr 3 (cat:gbar 3 0 '(1 2) 0 '(3) 0 '())
|
|
||||||
2 '(4 5))
|
|
||||||
abar-degr abar)))
|
|
||||||
(cat:? c (+ 5 abar-degr) gnrt)
|
|
||||||
(is (cat:cmbn-zero-p (cat:? c (cat:? c (+ 5 abar-degr) gnrt))))
|
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(let ((abar (random-abar 8 4)))
|
(let ((abar (random-abar 8 4)))
|
||||||
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
||||||
@ -107,9 +94,8 @@
|
|||||||
(print (cat:? c (+ 4 abar-degr) gnrt))
|
(print (cat:? c (+ 4 abar-degr) gnrt))
|
||||||
(is (cat:cmbn-zero-p (cat:? c (cat:? c (+ 4 abar-degr)
|
(is (cat:cmbn-zero-p (cat:? c (cat:? c (+ 4 abar-degr)
|
||||||
gnrt)))))))))
|
gnrt)))))))))
|
||||||
|#
|
|
||||||
|
|
||||||
#|
|
|
||||||
(test cs-left-hmeq-hat
|
(test cs-left-hmeq-hat
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(let ((c (cat:cs-left-hmeq-hat (cat:k-z-1)))
|
(let ((c (cat:cs-left-hmeq-hat (cat:k-z-1)))
|
||||||
@ -155,23 +141,8 @@
|
|||||||
(print (cat:? c (+ 4 abar-degr) gnrt))
|
(print (cat:? c (+ 4 abar-degr) gnrt))
|
||||||
(is (cat:cmbn-zero-p (cat:? c (cat:? c (+ 4 abar-degr)
|
(is (cat:cmbn-zero-p (cat:? c (cat:? c (+ 4 abar-degr)
|
||||||
gnrt)))))))))
|
gnrt)))))))))
|
||||||
|#
|
|
||||||
|
|
||||||
|
|
||||||
(test cs-pre-left-hmeq-left-reduction-intr-f
|
|
||||||
(cat:cs-pre-left-hmeq-left-reduction-intr-f
|
|
||||||
(cat:cmbn 6 100 (cat:tnpr 4 (cat:tnpr 2 'a 2 'b) 2 'c)
|
|
||||||
10 (cat:tnpr 6 (cat:tnpr 2 'a 4 'b) 0 'c)
|
|
||||||
50 (cat:tnpr 6 (cat:tnpr 6 'a 0 'b) 0 'c)
|
|
||||||
1 (cat:tnpr 6 (cat:tnpr 6 'aa 0 'b) 0 'c))))
|
|
||||||
|
|
||||||
|
|
||||||
(test cs-pre-left-hmeq-left-reduction-intr-g
|
|
||||||
(let ((g (cat:cs-pre-left-hmeq-left-reduction-intr-g '())))
|
|
||||||
(funcall g (cat:cmbn 3 14 (cat:gbar 3 0 'a 1 'b 0 '())))))
|
|
||||||
|
|
||||||
|
|
||||||
#|
|
|
||||||
(test cs-pre-left-hmeq-left-reduction
|
(test cs-pre-left-hmeq-left-reduction
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(let ((rdct (cat:cs-pre-left-hmeq-left-reduction (cat:k-z-1)))
|
(let ((rdct (cat:cs-pre-left-hmeq-left-reduction (cat:k-z-1)))
|
||||||
@ -179,17 +150,6 @@
|
|||||||
gnrt
|
gnrt
|
||||||
gbar)
|
gbar)
|
||||||
(cat:pre-check-rdct rdct)
|
(cat:pre-check-rdct rdct)
|
||||||
(setf cat:*tc* (cat:cmbn 0 1
|
|
||||||
(cat:tnpr 0 (cat:tnpr 0
|
|
||||||
cat:+null-gbar+ 0 '())
|
|
||||||
0 cat:+null-abar+))
|
|
||||||
cat:*bc* (cat:cmbn 0 1 cat:+null-gbar+))
|
|
||||||
(check-rdct)
|
|
||||||
(setf cat:*tc* (cat:cmbn 1 1
|
|
||||||
(cat:tnpr 1 (cat:tnpr 0
|
|
||||||
cat:+null-gbar+ 1 '(13))
|
|
||||||
0 cat:+null-abar+)))
|
|
||||||
(check-rdct)
|
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(let ((abar (random-abar 8 4)))
|
(let ((abar (random-abar 8 4)))
|
||||||
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
||||||
@ -235,25 +195,15 @@
|
|||||||
(setf cat:*tc* (cat:cmbn (+ 4 abar-degr) 1 gnrt))
|
(setf cat:*tc* (cat:cmbn (+ 4 abar-degr) 1 gnrt))
|
||||||
(setf cat:*bc* (cat:cmbn 5 1 gbar))
|
(setf cat:*bc* (cat:cmbn 5 1 gbar))
|
||||||
(check-rdct))))))
|
(check-rdct))))))
|
||||||
|#
|
|
||||||
|
|
||||||
#|
|
|
||||||
(test cs-left-hmeq-left-reduction
|
(test cs-left-hmeq-left-reduction
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(let ((rdct (cat:cs-left-hmeq-left-reduction (cat:k-z-1)))
|
(let ((rdct (cat:cs-left-hmeq-left-reduction (cat:k-z-1)))
|
||||||
abar-degr gnrt gbar)
|
abar-degr
|
||||||
|
gnrt
|
||||||
|
gbar)
|
||||||
(cat:pre-check-rdct rdct)
|
(cat:pre-check-rdct rdct)
|
||||||
(setf cat:*tc* (cat:cmbn 0 1 (cat:tnpr 0
|
|
||||||
(cat:tnpr 0 cat:+null-gbar+
|
|
||||||
0 '()) 0
|
|
||||||
cat:+null-abar+))
|
|
||||||
cat:*bc* (cat:cmbn 0 1 cat:+null-gbar+))
|
|
||||||
(check-rdct)
|
|
||||||
(setf cat:*tc* (cat:cmbn 1 1 (cat:tnpr 1
|
|
||||||
(cat:tnpr 0 cat:+null-gbar+
|
|
||||||
1 '(13)) 0
|
|
||||||
cat:+null-abar+)))
|
|
||||||
(check-rdct)
|
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(let ((abar (random-abar 8 4)))
|
(let ((abar (random-abar 8 4)))
|
||||||
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
||||||
@ -299,7 +249,7 @@
|
|||||||
(setf cat:*tc* (cat:cmbn (+ 4 abar-degr) 1 gnrt))
|
(setf cat:*tc* (cat:cmbn (+ 4 abar-degr) 1 gnrt))
|
||||||
(setf cat:*bc* (cat:cmbn 5 1 gbar))
|
(setf cat:*bc* (cat:cmbn 5 1 gbar))
|
||||||
(check-rdct))))))
|
(check-rdct))))))
|
||||||
|#
|
|
||||||
|
|
||||||
(test cs-pre-left-hmeq-right-reduction-intr-f
|
(test cs-pre-left-hmeq-right-reduction-intr-f
|
||||||
(cat:cs-pre-left-hmeq-right-reduction-intr-f
|
(cat:cs-pre-left-hmeq-right-reduction-intr-f
|
||||||
@ -315,24 +265,13 @@
|
|||||||
(let ((g (cat:cs-pre-left-hmeq-right-reduction-intr-g 'i)))
|
(let ((g (cat:cs-pre-left-hmeq-right-reduction-intr-g 'i)))
|
||||||
(funcall g (cat:cmbn 3 2 (cat:abar 1 'a 2 'b)))))
|
(funcall g (cat:cmbn 3 2 (cat:abar 1 'a 2 'b)))))
|
||||||
|
|
||||||
#|
|
|
||||||
(test cs-pre-left-hmeq-right-reduction
|
(test cs-pre-left-hmeq-right-reduction
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(let ((rdct (cat:cs-pre-left-hmeq-right-reduction (cat:k-z-1)))
|
(let ((rdct (cat:cs-pre-left-hmeq-right-reduction (cat:k-z-1)))
|
||||||
abar-degr
|
abar-degr
|
||||||
gnrt)
|
gnrt)
|
||||||
(cat:pre-check-rdct rdct)
|
(cat:pre-check-rdct rdct)
|
||||||
(setf cat:*tc* (cat:cmbn 0 1 (cat:tnpr 0
|
|
||||||
(cat:tnpr 0 cat:+null-gbar+
|
|
||||||
0 '())
|
|
||||||
0 cat:+null-abar+))
|
|
||||||
cat:*bc* (cat:cmbn 0 1 cat:+null-abar+))
|
|
||||||
(check-rdct)
|
|
||||||
(setf cat:*tc* (cat:cmbn 1 1 (cat:tnpr 1
|
|
||||||
(cat:tnpr 0 cat:+null-gbar+
|
|
||||||
1 '(13))
|
|
||||||
0 cat:+null-abar+)))
|
|
||||||
(check-rdct)
|
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(let ((abar (random-abar 8 4)))
|
(let ((abar (random-abar 8 4)))
|
||||||
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
||||||
@ -373,27 +312,14 @@
|
|||||||
(setf cat:*tc* (cat:cmbn (+ 4 abar-degr) 1 gnrt))
|
(setf cat:*tc* (cat:cmbn (+ 4 abar-degr) 1 gnrt))
|
||||||
(setf cat:*bc* (cat:cmbn abar-degr 1 abar))
|
(setf cat:*bc* (cat:cmbn abar-degr 1 abar))
|
||||||
(check-rdct))))))
|
(check-rdct))))))
|
||||||
|#
|
|
||||||
|
|
||||||
#|
|
|
||||||
(test cs-left-hmeq-right-reduction
|
(test cs-left-hmeq-right-reduction
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
|
|
||||||
(let ((rdct (cat:cs-left-hmeq-right-reduction (cat:k-z-1)))
|
(let ((rdct (cat:cs-left-hmeq-right-reduction (cat:k-z-1)))
|
||||||
abar-degr
|
abar-degr
|
||||||
gnrt)
|
gnrt)
|
||||||
(cat:pre-check-rdct rdct)
|
(cat:pre-check-rdct rdct)
|
||||||
(setf cat:*tc* (cat:cmbn 0 1
|
|
||||||
(cat:tnpr 0 (cat:tnpr 0 cat:+null-gbar+
|
|
||||||
0 '())
|
|
||||||
0 cat:+null-abar+))
|
|
||||||
cat:*bc* (cat:cmbn 0 1 cat:+null-abar+))
|
|
||||||
(check-rdct)
|
|
||||||
(setf cat:*tc* (cat:cmbn 1 1
|
|
||||||
(cat:tnpr 1 (cat:tnpr 0 cat:+null-gbar+
|
|
||||||
1 '(13))
|
|
||||||
0 cat:+null-abar+)))
|
|
||||||
(check-rdct)
|
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(let ((abar (random-abar 4 2)))
|
(let ((abar (random-abar 4 2)))
|
||||||
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
||||||
@ -423,18 +349,8 @@
|
|||||||
(unless (>= abar-degr 9)
|
(unless (>= abar-degr 9)
|
||||||
(setf cat:*tc* (cat:cmbn (+ 5 abar-degr) 1 gnrt))
|
(setf cat:*tc* (cat:cmbn (+ 5 abar-degr) 1 gnrt))
|
||||||
(setf cat:*bc* (cat:cmbn abar-degr 1 abar))
|
(setf cat:*bc* (cat:cmbn abar-degr 1 abar))
|
||||||
(check-rdct))))
|
|
||||||
(dotimes (i 10)
|
|
||||||
(let ((abar (random-abar 6 4)))
|
|
||||||
(setf abar-degr (apply #'+ (mapcar #'car (cat:abar-list abar))))
|
|
||||||
(setf gnrt (cat:tnpr 4 (cat:tnpr 2 (cat:gbar 2 0 '(3) 0 '())
|
|
||||||
2 '(4 5))
|
|
||||||
abar-degr abar))
|
|
||||||
(unless (>= abar-degr 10)
|
|
||||||
(setf cat:*tc* (cat:cmbn (+ 4 abar-degr) 1 gnrt))
|
|
||||||
(setf cat:*bc* (cat:cmbn abar-degr 1 abar))
|
|
||||||
(check-rdct))))))
|
(check-rdct))))))
|
||||||
|#
|
|
||||||
|
|
||||||
(test cs-left-hmeq
|
(test cs-left-hmeq
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
|
|||||||
@ -176,7 +176,7 @@
|
|||||||
(gnrt (intern (coerce (vector (code-char (+ 65 (random 4)))) 'string))
|
(gnrt (intern (coerce (vector (code-char (+ 65 (random 4)))) 'string))
|
||||||
(intern (coerce (vector (code-char (+ 65 (random 4)))) 'string)))
|
(intern (coerce (vector (code-char (+ 65 (random 4)))) 'string)))
|
||||||
(rslt nil (cons (cat:brgn degr gnrt) rslt)))
|
(rslt nil (cons (cat:brgn degr gnrt) rslt)))
|
||||||
((> tdegr 10) (setf cat:*tc* (cat:cmbn tdegr 1 (cat:make-abar
|
((> tdegr 8) (setf cat:*tc* (cat:cmbn tdegr 1 (cat:make-abar
|
||||||
:list rslt))))))
|
:list rslt))))))
|
||||||
|
|
||||||
|
|
||||||
@ -186,7 +186,7 @@
|
|||||||
(gnrt (intern (coerce (vector (code-char (+ 67 (random 2)))) 'string))
|
(gnrt (intern (coerce (vector (code-char (+ 67 (random 2)))) 'string))
|
||||||
(intern (coerce (vector (code-char (+ 67 (random 2)))) 'string)))
|
(intern (coerce (vector (code-char (+ 67 (random 2)))) 'string)))
|
||||||
(rslt nil (cons (cat:brgn degr gnrt) rslt)))
|
(rslt nil (cons (cat:brgn degr gnrt) rslt)))
|
||||||
((> tdegr 10) (setf cat:*bc* (cat:cmbn tdegr 1 (cat:make-abar
|
((> tdegr 8) (setf cat:*bc* (cat:cmbn tdegr 1 (cat:make-abar
|
||||||
:list rslt))))))
|
:list rslt))))))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,21 +1,12 @@
|
|||||||
|
|
||||||
(in-package :kenzo-test)
|
(in-package :kenzo-test)
|
||||||
|
|
||||||
(in-suite :kenzo)
|
(in-suite :kenzo)
|
||||||
|
|
||||||
#|
|
|
||||||
(test ls-hat-t-u
|
(test ls-hat-t-u
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(let ((c (cat:ls-hat-t-u (cat:deltab)))
|
(let ((c (cat:ls-hat-t-u (cat:deltab)))
|
||||||
allp allp-degr gnrt)
|
allp allp-degr gnrt)
|
||||||
(dotimes (i 10) (print (random-allp 5)))
|
|
||||||
(setf allp (random-allp 4)) ;; the degree could be too big
|
|
||||||
;; then redo
|
|
||||||
(setf allp-degr (apply #'+ (mapcar #'car (cat:allp-list allp))))
|
|
||||||
(setf gnrt (cat:tnpr allp-degr allp 4
|
|
||||||
(cat:tnpr 2 7 2 (cat:loop3 0 15 2))))
|
|
||||||
(cat:? c (+ 4 allp-degr) gnrt)
|
|
||||||
(cat:? c *)
|
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(let ((allp (random-allp 3)))
|
(let ((allp (random-allp 3)))
|
||||||
(setf allp-degr (apply #'+ (mapcar #'car (cat:allp-list allp))))
|
(setf allp-degr (apply #'+ (mapcar #'car (cat:allp-list allp))))
|
||||||
@ -40,20 +31,12 @@
|
|||||||
(unless (>= allp-degr 10)
|
(unless (>= allp-degr 10)
|
||||||
(print (cat:? c (+ 5 allp-degr) gnrt))
|
(print (cat:? c (+ 5 allp-degr) gnrt))
|
||||||
(print (cat:? c (cat:? c (+ 5 allp-degr) gnrt))))))))
|
(print (cat:? c (cat:? c (+ 5 allp-degr) gnrt))))))))
|
||||||
|#
|
|
||||||
|
|
||||||
#|
|
|
||||||
(test ls-hat-u-t
|
(test ls-hat-u-t
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(let ((c (cat:ls-hat-u-t (cat:deltab)))
|
(let ((c (cat:ls-hat-u-t (cat:deltab)))
|
||||||
allp allp-degr gnrt)
|
allp allp-degr gnrt)
|
||||||
(dotimes (i 10) (print (random-allp 5)))
|
|
||||||
(setf allp (random-allp 3))
|
|
||||||
(setf allp-degr (apply #'+ (mapcar #'car (cat:allp-list allp))))
|
|
||||||
(setf gnrt (cat:tnpr allp-degr allp 4
|
|
||||||
(cat:tnpr 2 7 2 (cat:loop3 0 15 2))))
|
|
||||||
(cat:? c (+ 4 allp-degr) gnrt)
|
|
||||||
(cat:? c *)
|
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(let ((allp (random-allp 3)))
|
(let ((allp (random-allp 3)))
|
||||||
(setf allp-degr (apply #'+ (mapcar #'car (cat:allp-list allp))))
|
(setf allp-degr (apply #'+ (mapcar #'car (cat:allp-list allp))))
|
||||||
@ -78,20 +61,12 @@
|
|||||||
(unless (>= allp-degr 10)
|
(unless (>= allp-degr 10)
|
||||||
(print (cat:? c (+ 5 allp-degr) gnrt))
|
(print (cat:? c (+ 5 allp-degr) gnrt))
|
||||||
(print (cat:? c (cat:? c (+ 5 allp-degr) gnrt))))))))
|
(print (cat:? c (cat:? c (+ 5 allp-degr) gnrt))))))))
|
||||||
|#
|
|
||||||
|
|
||||||
#|
|
|
||||||
(test ls-left-hmeq-hat
|
(test ls-left-hmeq-hat
|
||||||
(cat:cat-init)
|
(cat:cat-init)
|
||||||
(let ((c (cat:ls-left-hmeq-hat (cat:deltab)))
|
(let ((c (cat:ls-left-hmeq-hat (cat:deltab)))
|
||||||
allp allp-degr gnrt)
|
allp allp-degr gnrt)
|
||||||
(dotimes (i 10) (print (random-allp 5)))
|
|
||||||
(setf allp (random-allp 3))
|
|
||||||
(setf allp-degr (apply #'+ (mapcar #'car (cat:allp-list allp))))
|
|
||||||
(setf gnrt (cat:tnpr allp-degr allp 4 (cat:tnpr 2 7 2
|
|
||||||
(cat:loop3 0 15 2))))
|
|
||||||
(cat:? c (+ 4 allp-degr) gnrt)
|
|
||||||
(cat:? c (cat:? c (+ 4 allp-degr) gnrt))
|
|
||||||
(dotimes (i 10)
|
(dotimes (i 10)
|
||||||
(let ((allp (random-allp 3)))
|
(let ((allp (random-allp 3)))
|
||||||
(setf allp-degr (apply #'+ (mapcar #'car (cat:allp-list allp))))
|
(setf allp-degr (apply #'+ (mapcar #'car (cat:allp-list allp))))
|
||||||
@ -116,7 +91,7 @@
|
|||||||
(unless (>= allp-degr 10)
|
(unless (>= allp-degr 10)
|
||||||
(print (cat:? c (+ 5 allp-degr) gnrt))
|
(print (cat:? c (+ 5 allp-degr) gnrt))
|
||||||
(print (cat:? c (cat:? c (+ 5 allp-degr) gnrt))))))))
|
(print (cat:? c (cat:? c (+ 5 allp-degr) gnrt))))))))
|
||||||
|#
|
|
||||||
|
|
||||||
(test ls-pre-left-hmeq-left-reduction-intr-f
|
(test ls-pre-left-hmeq-left-reduction-intr-f
|
||||||
(cat:ls-pre-left-hmeq-left-reduction-intr-f
|
(cat:ls-pre-left-hmeq-left-reduction-intr-f
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user