Sierpiński Carpet Graph

Author

Eric W. Weisstein
June 1, 2020

This notebook downloaded from http://mathworld.wolfram.com/notebooks/GraphTheory/SierpinskiCarpetGraph.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/SierpinskiCarpetGraph.html.

©2020 Wolfram Research, Inc. except for portions noted otherwise

References

https://mathematica.stackexchange.com/questions/30728/sierpinski-carpet-with-graphdata

Graphics

GraphData["SierpinskiCarpet"]

GraphicsRow[Table[SierpinskiCarpetGraph[n,VertexSize->{"Scaled",If[n<3,.03,.015]},System`VertexStyle->Red,System`EdgeStyle->Black],{n,3}],ImageSize->500]

Special Cases

With[{prop="SierpinskiCarpet"},TextGrid[Sort[{prop/.GraphData[#,"NotationRules"],GraphData[#,"Name"]}&/@DeleteCases[GraphData[prop],{prop,_}]],Dividers->All]]

Construction

By hand

MengerMesh[2]

v=PropertyValue[{MengerMesh[2],2},MeshCellCentroid]

Graphics[{Point[v],MapIndexed[Text[#2[[1]],#+.02]&,v]}]

c2=MeshCells[MengerMesh[2],2][[All,1]]

With[{c2=MeshCells[MengerMesh[2],2][[All,1]]},Select[Subsets[c2,{2}],Length[Intersection@@#]==2&]/.Thread[c2->Range[Length[c2]]]]

With[{a=MengerMesh[2]["ConnectivityMatrix"[2,1]]},DeleteCases[Most[ArrayRules[UpperTriangularize[a.Transpose[a]]]][[All,1]],{x_,x_}]]

Graphics[{Point[v],MapIndexed[Text[#2[[1]],#+.02]&,v]}]

(* http://mathematica.stackexchange.com/questions/30728/sierpinski-carpet-with-graphdata *)

carpet[n_]:=Nest[ArrayFlatten[{{#,#,#},{#,0,#},{#,#,#}}]&,SparseArray[{i_,j_}/;i≠2||j≠2:>1,{3,3}],n-1];

SierpinskiCarpetGraph0[n_Integer?Positive,opts___?OptionQ]:=Module[{sa,edges,parts},parts={{1,0},{0,1}};
sa=carpet[n];
edges=Flatten[With[{m=ArrayPad[sa,1]},Function[pos,pos->#&/@Pick[pos+#&/@parts,Extract[m,1+pos+#&/@parts],1]]/@sa["NonzeroPositions"]],1];
IndexGraph[System`Graph[sa["NonzeroPositions"],edges,opts,DirectedEdges->False,System`VertexCoordinates->sa["NonzeroPositions"]]]]

SierpinskiCarpetGraph1[n_Integer?Positive,opts___?OptionQ]:=Module[{mesh=MengerMesh[n],c2},
c2=MeshCells[mesh,2][[All,1]];
System`Graph[
Select[Subsets[c2,{2}],Length[Intersection@@#]==2&]/.Thread[c2->Range[Length[c2]]],
opts,
VertexCoordinates->PropertyValue[{mesh,2},MeshCellCentroid]
]]

SierpinskiCarpetGraph2[n_Integer?Positive,opts___?OptionQ]:=Module[{mesh=MengerMesh[n],c2},
a=mesh["ConnectivityMatrix"[2,1]];
System`Graph[
Range[(8^n)],
UndirectedEdge@@@Sort[DeleteCases[UpperTriangularize[a.Transpose[a]]["NonzeroPositions"],{x_,x_}]],
opts,
VertexCoordinates->PropertyValue[{mesh,2},MeshCellCentroid]
]]

SierpinskiCarpetGraph0[2]

{g1,g2,g3}=Through[{SierpinskiCarpetGraph0,SierpinskiCarpetGraph1,SierpinskiCarpetGraph2}[2]]

RecognizeGraph/@{g1,g2,g3}

Table[SierpinskiCarpetGraph0[n]//Timing//First,{n,7}]

Table[SierpinskiCarpetGraph1[n]//Timing//First,{n,4}]

Table[SierpinskiCarpetGraph2[n]//Timing//First,{n,7}]

IGraph

Needs["IGraphM`"]

With[{mesh=MengerMesh[4]},IGMeshCellAdjacencyGraph[mesh,2,VertexCoordinates->PropertyValue[{mesh,{2,All}},MeshCellCentroid]]]

RecognizeGraph[%]

MeshConnectivityGraph (V12.1)

MeshConnectivityGraph[MengerMesh[3],2]

MeshConnectivityGraph[MengerMesh[3],2]

RecognizeGraph[%]

men=MengerMesh[2,2];
GraphPlot3D[GraphData[{"SierpinskiCarpet",2}],PerformanceGoal->"Speed",VertexCoordinates->(Mean[MeshCoordinates[men][[#]]]&/@MeshCells[men,1][[All,1]])]

men=MengerMesh[3,2];
GraphPlot3D[GraphData[{"SierpinskiCarpet",3}],PerformanceGoal->"Speed",VertexCoordinates->(Mean[MeshCoordinates[men][[#]]]&/@MeshCells[men,1][[All,1]])]

Properties

Acyclic

seq=Table[GraphData[{"SierpinskiCarpet",n},"Acyclic"],{n,4}]

AdjacencyMatrixCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"AdjacencyMatrixCount"],{n,4}]

Table[(((8^n)!)/(Piecewise[{{16,n==1}},8])),{n,4}]==seq

Arboricity

Possibly 2

seq=Table[GraphData[{"SierpinskiCarpet",n},"Arboricity"],{n,4}]

ArcTransitive

seq=Table[GraphData[{"SierpinskiCarpet",n},"ArcTransitive"],{n,4}]

ArcTransitivity

seq=Table[GraphData[{"SierpinskiCarpet",n},"ArcTransitivity"],{n,4}]

AutomorphismCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"AutomorphismCount"],{n,4}]

Table[GroupOrder[GraphAutomorphismGroup[SierpinskiCarpetGraph[n]]],{n,5}]

BalabanIndex

seq=Table[GraphData[{"SierpinskiCarpet",n},"BalabanIndex"],{n,2}]

Bandwidth

seq=Table[GraphData[{"SierpinskiCarpet",n},"Bandwidth"],{n,4}]

BridgeCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"BridgeCount"],{n,4}]

BurningNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"BurningNumber"],{n,4}]

CharacteristicPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"CharacteristicPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

Chordal

seq=Table[GraphData[{"SierpinskiCarpet",n},"Chordal"],{n,4}]

ChordCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"ChordCount"],{n,4}]

Chordless

seq=Table[GraphData[{"SierpinskiCarpet",n},"Chordless"],{n,4}]

ChordlessCycleCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"ChordlessCycleCount"],{n,4}]

FindSequenceFunction[seq,n]

Chords

seq=Table[GraphData[{"SierpinskiCarpet",n},"Chords"],{n,4}]

ChromaticallyUnique

seq=Table[GraphData[{"SierpinskiCarpet",n},"ChromaticallyUnique"],{n,4}]

GraphData[{"ChromaticallyUnique","SierpinskiCarpet"}]

ChromaticInvariant

seq=Table[GraphData[{"SierpinskiCarpet",n},"ChromaticInvariant"],{n,4}]

FindSequenceFunction[Drop[seq,2],n]

ChromaticNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"ChromaticNumber"],{n,4}]

ChromaticPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"ChromaticPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

Circumference

seq=Table[GraphData[{"SierpinskiCarpet",n},"Circumference"],{n,4}]

FindSequenceFunction[seq,n]

Classes

Intersection@@(GraphData[#,"Classes"]&/@GraphData["SierpinskiCarpet"])

CliqueCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"CliqueCount"],{n,4}]

(seq=Table[Length@FindAllCliques[SierpinskiCarpetGraph[n]],{n,5}])//Timing

FindSequenceFunction[seq,n]

gf=x FindGeneratingFunction[seq,x]

1+(8^n)x+8(8^n-3^n)/5(x^2)/.x->1//FullSimplify

Table[(1/5) (5-8 (3^n)+13 (8^n)),{n,5}]

CliqueCoveringNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"CliqueCoveringNumber"],{n,4}]

FindSequenceFunction[seq,n]

CliqueNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"CliqueNumber"],{n,4}]

CliquePolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"CliquePolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

FindSequenceFunction[#,n]&/@Transpose[CoefficientList[poly,x]]

Table[1+(8^n)x+8(8^n-3^n)/5(x^2),{n,5}]

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

CochromaticGraphNames

Table[GraphData[{"SierpinskiCarpet",n},"CochromaticGraphNames"],{n,4}]

Select[GraphData["SierpinskiCarpet"],GraphData[#,"ChromaticallyUnique"]=!=False&]

ComplementOddChordlessCycleCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"ComplementOddChordlessCycleCount"],{n,4}]

ConnectedComponentCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"ConnectedComponentCount"],{n,4}]

ConnectedDominatingSetCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"ConnectedDominatingSetCount"],{n,4}]

FindSequenceFunction[seq,n]

ConnectedDominationNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"ConnectedDominationNumber"],{n,4}]

FindSequenceFunction[seq,n]

ConnectedDominationPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"ConnectedDominationPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

ConnectedInducedSubgraphCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"ConnectedInducedSubgraphCount"],{n,4}]

FindSequenceFunction[DeleteMissing[seq],n]

ConnectedInducedSubgraphPolynomial

(poly=Table[GraphData[{"SierpinskiCarpet",n},"CharacteristicPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

poly2=Table[XXX,{n,6}]

FullSimplify[poly2-poly]

CrossingNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"CrossingNumber"],{n,4}]

CycleCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"CycleCount"],{n,4}]

CyclePolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"CyclePolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

Cyclic

Table[GraphData[{"SierpinskiCarpet",n},"Cyclic"],{n,4}]

CyclomaticNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"CyclomaticNumber"],{n,4}]

(seq=Table[CyclomaticNumber[SierpinskiCarpetGraph[n]],{n,6}])//Timing

FindSequenceFunction[seq,n]//FullSimplify

DetourIndex

seq=Table[GraphData[{"SierpinskiCarpet",n},"DetourIndex"],{n,4}]

FindSequenceFunction[seq,n]

DetourMatrix

MatrixForm/@Table[GraphData[{"SierpinskiCarpet",n},"DetourMatrix"],{n,4}]

MatrixForm/@Table[SparseArray[{i_,j_}:>Abs[i-j],n],{n,4}]

DetourPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"DetourPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

Diameter

A100774

seq=Table[GraphData[{"SierpinskiCarpet",n},"Diameter"],{n,4}]

FindSequenceFunction[seq,n]

DistanceMatrix

MatrixForm/@Table[GraphData[{"SierpinskiCarpet",n},"DistanceMatrix"],{n,4}]

MatrixForm/@Table[SparseArray[{i_,j_}:>Abs[i-j],n],{n,4}]

DistancePolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"DistancePolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

DistinguishingNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"DistinguishingNumber"],{n,4}]

DomaticNumber

Probably 3 for n >= 2

seq=Table[GraphData[{"SierpinskiCarpet",n},"DomaticNumber"],{n,4}]

Table[GraphData[{"SierpinskiCarpet",n},"DominatingSetCount"],{n,4}]

Table[GraphData[{"SierpinskiCarpet",n},"MinimalDominatingSetCount"],{n,4}]

Table[Floor[Divide@@GraphData[{"SierpinskiCarpet",n},{"VertexCount","DominationNumber"}]],{n,4}]

DominatingSetCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"DominatingSetCount"],{n,4}]

DominationNumber

A291775

seq=Table[GraphData[{"SierpinskiCarpet",n},"DominationNumber"],{n,4}]

DominationPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"DominationPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

EdgeChromaticNumber

Probably 4

seq=Table[GraphData[{"SierpinskiCarpet",n},"EdgeChromaticNumber"],{n,4}]

FindSequenceFunction[seq,n]-2

gf=x FindGeneratingFunction[seq,x]

EdgeConnectivity

Table[GraphData[{"SierpinskiCarpet",n},"EdgeConnectivity"],{n,4}]

EdgeCount

A271939(n)

seq=Table[GraphData[{"SierpinskiCarpet",n},"EdgeCount"],{n,4}]

(seq=Table[EdgeCount[SierpinskiCarpetGraph[n]],{n,6}])//Timing

FindLinearRecurrence[seq]

LinearRecurrence[{11,-24},{8,88},20]

FindSequenceFunction[seq,n]//FullSimplify

gf=x FindGeneratingFunction[seq,x]

Rest@CoefficientList[Series[((8 x)/(1-11 x+24 (x^2))),{x,0,20}],x]

Table[8(8^n-3^n)/5,{n,20}]

EdgeCoverCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"EdgeCoverCount"],{n,4}]

EdgeCoverNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"EdgeCoverNumber"],{n,4}]

FindSequenceFunction[seq,n]

EdgeCoverPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"EdgeCoverPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

EulerianCycleCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"EulerianCycleCount"],{n,4}]

FaceCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"FaceCount"],{n,4}]

(seq=Table[Length@FindFace[SierpinskiCarpetGraph[n]],{n,3}])//Timing

FindSequenceFunction[seq,n]

FlowPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"FlowPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

FractionalChromaticNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"FractionalChromaticNumber"],{n,4}]

FractionalEdgeChromaticNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"FractionalEdgeChromaticNumber"],{n,4}]

Girth

seq=Table[GraphData[{"SierpinskiCarpet",n},"Girth"],{n,4}]

Gonality

seq=Table[GraphData[{"SierpinskiCarpet",n},"Gonality"],{n,4}]

HamiltonConnected

seq=Table[GraphData[{"SierpinskiCarpet",n},"HamiltonConnected"],{n,4}]

HamiltonDecompositionCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"HamiltonDecompositionCount"],{n,4}]

Hamiltonian

Table[GraphData[{"SierpinskiCarpet",n},"Hamiltonian"],{n,4}]

HamiltonianCycleCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"HamiltonianCycleCount"],{n,4}]

HamiltonianNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"HamiltonianNumber"],{n,4}]

FindSequenceFunction[seq,n]

HamiltonianPathCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"HamiltonianPathCount"],{n,4}]

HamiltonianWalkCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"HamiltonianWalkCount"],{n,4}]

HararyIndex

seq=Table[GraphData[{"SierpinskiCarpet",n},"HararyIndex"],{n,4}]

FindSequenceFunction[seq,n]

FindGeneratingFunction[seq,x]

HexagonCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"HexagonCount"],{n,4}]

(seq=Table[CycleCount[SierpinskiCarpetGraph[n],6],{n,5}])//Timing

(seq=Table[CycleCount[SierpinskiCarpetGraph[n],6],{n,6}])//Timing

FindSequenceFunction[Rest@seq,n-1]

gf=x FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]

IdiosyncraticPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"IdiosyncraticPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x,y]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

IndependenceNumber

Possibly A013731

Table[GraphData[{"SierpinskiCarpet",n},"IndependenceNumber"],{n,4}]

seq={4,32,256,2048,16384};

seq=Table[(2^(3n+2)),{n,0,20}]

FindLinearRecurrence[seq]

LinearRecurrence[{8},{4},20]

2^(3Range[0,20]+2)

gf=FindGeneratingFunction[seq,x]

CoefficientList[Series[-(4/(-1+8 x)),{x,0,20}],x]

IndependencePolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"IndependencePolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

IndependenceRatio

seq=Table[GraphData[{"SierpinskiCarpet",n},"IndependenceRatio"],{n,4}]

IndependentEdgeSetCount

A292967

seq=Table[GraphData[{"SierpinskiCarpet",n},"IndependentEdgeSetCount"],{n,4}]

IndependentVertexSetCount

A292707

seq=Table[GraphData[{"SierpinskiCarpet",n},"IndependentVertexSetCount"],{n,4}]

IntersectionNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"IntersectionNumber"],{n,4}]

KirchhoffIndex

seq=Table[GraphData[{"SierpinskiCarpet",n},"KirchhoffIndex"],{n,4}]

FindSequenceFunction[seq,n]

KirchhoffSumIndex

seq=Table[GraphData[{"SierpinskiCarpet",n},"KirchhoffSumIndex"],{n,4}]

LaplacianMatrix

MatrixForm/@Table[GraphData[{"SierpinskiCarpet",n},"LaplacianMatrix"],{n,4}]

LaplacianPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"LaplacianPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

LeafCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"LeafCount"],{n,4}]

LongestCycleCount

Same as |HC|

seq=Table[GraphData[{"SierpinskiCarpet",n},"LongestCycleCount"],{n,4}]

LovaszNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"LovaszNumber"],{n,4}]

MatchingGeneratingPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"MatchingGeneratingPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

MatchingNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"MatchingNumber"],{n,4}]

FindSequenceFunction[seq,n]

MatchingPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"MatchingPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

MaximalCliqueCount

A271939

seq=Table[GraphData[{"SierpinskiCarpet",n},"MaximalCliqueCount"],{n,4}]

FindSequenceFunction[seq,n]

Table[8*(8^n-3^n)/5,{n,5}]

MaximalIndependentEdgeSetCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"MaximalIndependentEdgeSetCount"],{n,4}]

MaximalIndependentVertexSetCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"MaximalIndependentVertexSetCount"],{n,4}]

MaximumCliqueCount

A271939

seq=Table[GraphData[{"SierpinskiCarpet",n},"MaximumCliqueCount"],{n,4}]

FindSequenceFunction[seq,n]

SeriesCoefficient[FindGeneratingFunction[seq,x],{x,0,n}]

Table[8*(8^n-3^n)/5,{n,5}]

MaximumIndependentEdgeSetCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"MaximumIndependentEdgeSetCount"],{n,4}]

MaximumIndependentVertexSetCount

Possibly 2?

seq=Table[GraphData[{"SierpinskiCarpet",n},"MaximumIndependentVertexSetCount"],{n,4}]

MaximumLeafNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"MaximumLeafNumber"],{n,4}]

MaximumVertexDegree

seq=Table[GraphData[{"SierpinskiCarpet",n},"MaximumVertexDegree"],{n,4}]

MeanDistance

seq=Table[GraphData[{"SierpinskiCarpet",n},"MeanDistance"],{n,4}]

(seq=Table[Mean[Flatten[GraphDistanceMatrix[SierpinskiCarpetGraph[n]]]],{n,4}])//Timing

(seq=Table[Mean[Flatten[GraphDistanceMatrix[SierpinskiCarpetGraph[n]]]],{n,5}])//Timing

FindSequenceFunction[seq,n]

MinimumCliqueCoveringCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"MinimumCliqueCoveringCount"],{n,4}]

MinimumConnectedDominatingSetCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"MinimumConnectedDominatingSetCount"],{n,4}]

FindSequenceFunction[seq,n]

MinimumDistinguishingLabelingCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"MinimumDistinguishingLabelingCount"],{n,4}]

MinimumDominatingSetCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"MinimumDominatingSetCount"],{n,4}]

MinimumEdgeCoverCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"MinimumEdgeCoverCount"],{n,4}]

MinimumVertexDegree

seq=Table[GraphData[{"SierpinskiCarpet",n},"MinimumVertexDegree"],{n,4}]

MolecularTopologicalIndex

seq=Table[GraphData[{"SierpinskiCarpet",n},"MolecularTopologicalIndex"],{n,4}]

(seq=Table[MolecularTopologicalIndex[SierpinskiCarpetGraph[n]],{n,4}])//Timing

(seq=Table[MolecularTopologicalIndex[SierpinskiCarpetGraph[n]],{n,5}])//Timing

FindSequenceFunction[seq,n]

Nonhamiltonian

Table[GraphData[{"SierpinskiCarpet",n},"Nonhamiltonian"],{n,4}]

NormalizedLaplacianMatrix

MatrixForm/@Table[GraphData[{"SierpinskiCarpet",n},"NormalizedLaplacianMatrix"],{n,4}]

OddChordlessCycleCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"OddChordlessCycleCount"],{n,4}]

PathCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"PathCount"],{n,4}]

FindLinearRecurrence[seq]

FindSequenceFunction[seq,n]

gf=x FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]

PathPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"PathPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

PentagonCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"PentagonCount"],{n,4}]

Perfect

Table[GraphData[{"SierpinskiCarpet",n},"Perfect"],{n,4}]

ProjectivePlaneCrossingNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"ProjectivePlaneCrossingNumber"],{n,4}]

Radius

A237930

seq=Table[GraphData[{"SierpinskiCarpet",n},"Radius"],{n,4}]

(seq=Table[GraphRadius[SierpinskiCarpetGraph[n]],{n,5}])//Timing

FindSequenceFunction[seq,n]

seq={4,10,31,94,283};

gf=x FindGeneratingFunction[seq,x]

FullSimplify[SeriesCoefficient[gf,{x,0,n}],n>0]

Table[Piecewise[{{4,n==1}},(7 (3^n)-3)/6],{n,10}]

RankPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"RankPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x,y]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

RectilinearCrossingNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"RectilinearCrossingNumber"],{n,4}]

ReliabilityPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"ReliabilityPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

SigmaPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"SigmaPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

Skewness

seq=Table[GraphData[{"SierpinskiCarpet",n},"Skewness"],{n,4}]

SpanningTreeCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"SpanningTreeCount"],{n,4}]

FindSequenceFunction[Take[seq,7],n]

FindGeneratingFunction[Take[seq,7],x]

SquareCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"SquareCount"],{n,4}]

(seq=Table[CycleCount[SierpinskiCarpetGraph[n],4],{n,5}])//Timing

(seq=Table[CycleCount[SierpinskiCarpetGraph[n],4],{n,6}])//Timing

FindSequenceFunction[seq,n]//FullSimplify

StabilityIndex

seq=Table[GraphData[{"SierpinskiCarpet",n},"StabilityIndex"],{n,4}]

FindSequenceFunction[seq,n]

FindGeneratingFunction[seq,x]

TopologicalIndex

seq=Table[GraphData[{"SierpinskiCarpet",n},"TopologicalIndex"],{n,4}]

FindSequenceFunction[seq,n]

FindGeneratingFunction[seq,x]

ToroidalCrossingNumber

seq=Table[GraphData[{"SierpinskiCarpet",n},"ToroidalCrossingNumber"],{n,4}]

Traceable

Table[GraphData[{"SierpinskiCarpet",n},"Traceable"],{n,4}]

TriangleCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"TriangleCount"],{n,4}]

TuttePolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"TuttePolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x,y]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

Untraceable

Table[GraphData[{"SierpinskiCarpet",n},"Untraceable"],{n,4}]

VertexConnectivity

Table[GraphData[{"SierpinskiCarpet",n},"VertexConnectivity"],{n,4}]

VertexCount

seq=Table[GraphData[{"SierpinskiCarpet",n},"VertexCount"],{n,4}]

FindSequenceFunction[seq,n]

VertexCoverNumber

vertex cover number == vertex count - independence number

seq=Table[GraphData[{"SierpinskiCarpet",n},"VertexCoverNumber"],{n,4}]

FindSequenceFunction[seq,n]

VertexCoverPolynomial

(poly=Factor[Table[GraphData[{"SierpinskiCarpet",n},"VertexCoverPolynomial"],{n,k0=1,kmax=4}]/.f_Function:>f[x]])//Column

coef=Factor/@FindLinearRecurrence[poly]

ToPolynomialRecurrence[p,x,n,coef]

FormattedPolynomialRecurrence[p,x,n,coef]//TraditionalForm

TeXForm[%]

LinearRecurrence[coef,poly,{2-k0,Length[coef]-k0+1}]

FullSimplify[RSolve[Prepend[Table[p[k+k0-1,x]==poly[[k]],{k,Length[coef]}],ToPolynomialRecurrence[p,x,n,coef]],p[n,x],n],n∈Integers&&n>0]

gf=Factor[(z^k0)FindGeneratingFunction[poly,z]]

FullSimplify[SeriesCoefficient[gf,{z,0,n}],n>0]

Factor[Take[poly2-poly,kmax-k0-Count[poly,_Missing]+1]]

FullSimplify[poly2-poly]

VertexDegrees

seq=Table[GraphData[{"SierpinskiCarpet",n},"VertexDegrees"],{n,4}]

VertexTransitive

Table[GraphData[{"SierpinskiCarpet",n},"VertexTransitive"],{n,4}]

WienerIndex

A292025

seq=Table[GraphData[{"SierpinskiCarpet",n},"WienerIndex"],{n,4}]

Do[Print[{{"SierpinskCarpet",n},WienerIndex[SierpinskiCarpetGraph[n]]//Timing}],{n,10}]

(seq=Table[WienerIndex[SierpinskiCarpetGraph[n]],{n,5}])//Timing

seq={64,13224,2535136,485339728,93077094928};

FindSequenceFunction[seq,n]

FindLinearRecurrence[seq]

WienerSumIndex

seq=Table[GraphData[{"SierpinskiCarpet",n},"WienerSumIndex"],{n,4}]

FindSequenceFunction[seq,n]

GraphData

GraphDataString

file=OpenAppend["~/sierpinski_carpet.m"]

Do[WriteString[file,GraphDataString[
SierpinskiCarpetGraph[n],
"StandardName"->{"SierpinskiCarpet",n},
"Name"->ToString[n]<>"\[Hyphen]Sierpiński carpet graph",
"Classes"->{"SierpinskiCarpet"},
"Information"->"SierpinskiCarpetGraph",
TimeConstraint->10,
Debug->True,
MemoryConstraint->500*^6,
"Skip"->{"MatchingPolynomial","IndependencePolynomial","ChromaticPolynomial","Bandwidth","RankPolynomial","CliqueCoveringNumber","ChordlessCycles","OddChordlessCycles","Line","Bridges"}
]],{n,4,4}]

Close[file]