(*
 * Copyright 2016, NICTA
 *
 * This software may be distributed and modified according to the terms of
 * the GNU General Public License version 2. Note that NO WARRANTY is provided.
 * See "LICENSE_GPLv2.txt" for details.
 *
 * @TAG(NICTA_GPL)
 *)

(*
 * Top-level theory for running all our tests.
 *)
theory AllTests
imports Case FunFun FunFun2 Loop Middle_C Prim Split TakePut
begin
end