code: def runLateralDisambiguation(noiseLevel=None, profile=False):
    
    exp = L4L2Experiment(
      "lateral_disambiguation",
      numCorticalColumns=2,
    )
  
    objects = createObjectMachine(
      machineType="simple",
      numInputBits=20,
      sensorInputSize=1024,
      externalInputSize=1024,
      numCorticalColumns=2,
    )
    objects.addObject([(1, 1), (2, 2)])
    objects.addObject([(1, 1), (3, 2)])
  
    exp.learnObjects(objects.provideObjectsToLearn())
    if profile:
      exp.printProfile()
  
    inferConfig = {
      "noiseLevel": noiseLevel,
      "numSteps": 6,
      "pairs": {
        # this should activate 0 and 1
        0: [(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1)],
        # this should activate 1
        1: [(3, 2), (3, 2), (3, 2), (3, 2), (3, 2), (3, 2)]
      }
    }
  
    exp.infer(objects.provideObjectToInfer(inferConfig), objectName=1)
    if profile:
      exp.printProfile()
  
    exp.plotInferenceStats(
      fields=["L2 Representation",
              "Overlap L2 with object",
              "L4 Representation"],
      onePlot=False,
    )
docs: Runs a simple experiment where two objects share a (location, feature) pair.
    At inference, one column sees that ambiguous pair, and the other sees a
    unique one. We should see the first column rapidly converge to a
    unique representation.
  
    Parameters:
    ----------------------------
    @param    noiseLevel (float)
              Noise level to add to the locations and features during inference
  
    @param    profile (bool)
              If True, the network will be profiled after learning and inference