; This is a "limitations_program" for use with cat.clsp.
(mod (
      PUBKEY
      Truths
      parent_is_cat
      lineage_proof
      delta
      inner_conditions
      (
        delegated_puzzle
        delegated_solution
      )
    )

    (include condition_codes.clib)

    (defun sha256tree1 (TREE)
          (if (l TREE)
              (sha256 2 (sha256tree1 (f TREE)) (sha256tree1 (r TREE)))
              (sha256 1 TREE)))

    (c (list AGG_SIG_UNSAFE PUBKEY (sha256tree1 delegated_puzzle))
      (a delegated_puzzle (c Truths (c parent_is_cat (c lineage_proof (c delta (c inner_conditions delegated_solution))))))
    )
)
