В lua, функции - объекты первого класса. Вместо define можно просто объявлять глобальные (или локальные в файле) переменные. Заодно, это кеширует функции и экономит время исполнения (искать среди локальных быстрее чем среди глобальных, на длинных циклах критично).
local sin = math.sin
local cos = math.cos
return sin(a)^2 + cos(a)^2