1. A computer including a reasoning system configured to drive computational experiments, the system comprising: at least one atomic context having an abstract data type and comprising: a reference to at least one mathematical model that defines a computational experiment and that computes answers to the computational experiment, wherein the mathematical model is located externally to the atomic context and is capable of computing answers to the computational experiment without being associated with the atomic context; at least one interface to the mathematical model; and at least one method configured to run operations on the mathematical model; wherein the atomic context is configured to drive experiments using the mathematical model at least partially by providing inputs to the mathematical model, changing input values to the mathematical model, and iteratively instructing the mathematical model to run a computational experiment and to return at least one output of the computational experiment and wherein the atomic context does not alter the mathematical model; and a plurality of derivation methods, each derivation method configured to receive at least one reference to a base context and to create a derived context at least partially based on the base context, the derived context having the same abstract data type as an atomic context and being configured to: cause the performance of at least one computation at least partially by invoking the base context and providing at least one input to the base context; receive at least one output from the base context; perform at least one transformation on at least one input to or on at least one output from the base context; and return at least one output of the computation.