/**
  * Creates CAS algo, doesn't set any input, output or label
  *
  * @param cons construction
  * @param f input function
  */
 protected AlgoCasBase(Construction cons, CasEvaluableFunction f, Commands cmd) {
   super(cons);
   this.f = f;
   this.cmd = cmd;
   cons.addCASAlgo(this);
   g = (CasEvaluableFunction) f.toGeoElement().copyInternal(cons);
 }
  /**
   * Proves the given statement and gives some details in a list.
   *
   * @param cons The construction
   * @param root Input statement
   * @param relationTool true if output should be given for Relation Tool (which is more readable)
   */
  public AlgoProveDetails(Construction cons, GeoElement root, boolean relationTool) {
    super(cons);
    cons.addCASAlgo(this);
    this.root = root;
    this.relTool = relationTool;

    list = new GeoList(cons);
    setInputOutput(); // for AlgoElement

    // compute value of dependent number
    initialCompute();
    compute();
  }