  
  
                                 [1X BacktrackKit [101X
  
  
           [1X An extensible, easy to understand backtracking framework [101X
  
  
                                     1.1.0
  
  
                                  2 June 2026
  
  
                             Christopher Jefferson
  
                                 Wilf A. Wilson
  
  
  
  Christopher Jefferson
      Email:    [7Xmailto:caj21@st-andrews.ac.uk[107X
      Homepage: [7Xhttp://caj.host.cs.st-andrews.ac.uk/[107X
      Address:  [33X[0;14YSchool of Computer Science[133X
                [33X[0;14YUniversity of St Andrews[133X
                [33X[0;14YJack Cole Building, North Haugh[133X
                [33X[0;14YSt Andrews, Fife, KY16 9SX[133X
                [33X[0;14YUnited Kingdom[133X
  
  
  Wilf A. Wilson
      Email:    [7Xmailto:gap@wilf-wilson.net[107X
      Homepage: [7Xhttps://wilf.me[107X
  
  -------------------------------------------------------
  
  
  [1XContents (BacktrackKit)[101X
  
  1 [33X[0;0YIntroduction[133X
  2 [33X[0;0YExecuting a search[133X
    2.1 [33X[0;0YExtra information and stats[133X
      2.1-1 InfoBTKit
      2.1-2 BTKit_ResetStats
    2.2 [33X[0;0YThe main search interface[133X
      2.2-1 BTKit_SimpleSearch
      2.2-2 BTKit_SimpleSinglePermSearch
      2.2-3 BTKit_SimpleAllPermSearch
  3 [33X[0;0YImplementation[133X
    3.1 [33X[0;0YState[133X
      3.1-1 IsBacktrackableState
      3.1-2 IsBTKitState
      3.1-3 BacktrackableStateFamily
      3.1-4 BTKitStateType
      3.1-5 SaveState
      3.1-6 RestoreState
      3.1-7 ConsolidateState
    3.2 [33X[0;0YApplying refiners[133X
      3.2-1 InitialiseConstraints
      3.2-2 RefineConstraints
      3.2-3 FinaliseRBaseForConstraints
      3.2-4 ApplyFilters
    3.3 [33X[0;0YCurrently unorganised stuff[133X
      3.3-1 BTKit_BuildProblem
      3.3-2 FirstFixedPoint
      3.3-3 BuildRBase
      3.3-4 Backtrack
  4 [33X[0;0YConstraints[133X
    4.1 [33X[0;0YThe concept of constraints[133X
    4.2 [33X[0;0YThe [10XConstraints[110X record[133X
      4.2-1 Constraint
    4.3 [33X[0;0YConstraints via the [10XConstraint[110X record[133X
      4.3-1 Constraint.InGroup
      4.3-2 Constraint.InCoset
      4.3-3 Constraint.InRightCoset
      4.3-4 Constraint.InLeftCoset
      4.3-5 Constraint.Transport
      4.3-6 Constraint.Stabilise
      4.3-7 Constraint.Normalise
      4.3-8 Constraint.Centralise
      4.3-9 Constraint.Conjugate
      4.3-10 Constraint.MovedPoints
      4.3-11 Constraint.LargestMovedPoint
      4.3-12 Constraint.IsEven
      4.3-13 Constraint.IsOdd
      4.3-14 Constraint.IsTrivial
      4.3-15 Constraint.None
      4.3-16 Constraint.Everything
  5 [33X[0;0YRefiners[133X
    5.1 [33X[0;0YIntroduction to refiners[133X
    5.2 [33X[0;0YThe record [10Xrefine[110X[133X
    5.3 [33X[0;0YConstructing refiners[133X
      5.3-1 DummyRefiner
  6 [33X[0;0YOrdered partition stacks[133X
    6.1 [33X[0;0YAPI[133X
      6.1-1 PartitionStack
      6.1-2 IsPartitionStack
      6.1-3 PS_Points
      6.1-4 PS_ExtendedPoints
      6.1-5 PS_Extend
      6.1-6 PS_Cells
      6.1-7 PS_Fixed
      6.1-8 PS_AsPartition
      6.1-9 PS_CellLen
      6.1-10 PS_CellSlice
      6.1-11 PS_FixedCells
      6.1-12 PS_FixedPoints
      6.1-13 PS_CellOfPoint
      6.1-14 PS_RevertToCellCount
      6.1-15 PS_SplitCellByFunction
      6.1-16 PS_SplitCellsByFunction
      6.1-17 PS_ExtendedSplitCellsByFunction
      6.1-18 PS_SplitCellByUnorderedFunction
      6.1-19 PS_SplitCellsByUnorderedFunction
  7 [33X[0;0YOrdered tracers[133X
    7.1 [33X[0;0YAPI[133X
      7.1-1 RecordingTracer
      7.1-2 FollowingTracer
      7.1-3 CanonicalisingTracerFromTracer
      7.1-4 IsTracer
      7.1-5 AddEvent
      7.1-6 TraceLength
      7.1-7 TraceEvent
      7.1-8 GetEvents
  8 [33X[0;0YTutorial[133X
    8.1 [33X[0;0YPartition Stacks[133X
    8.2 [33X[0;0YRefiners[133X
  
  
  [32X
