The document describes a method for using dependent types in the Agda programming language to represent and verify genetic programming operations on programs represented as typed terms. Genetic programming terms are represented as Agda data types indexed by their input and output types. Genetic operators like crossover are defined to preserve the types of programs, avoiding runtime errors. Splitting a program into two parts for crossover is also represented as a dependent type. This allows verification that genetic programming searches will always generate well-typed programs.