Software Functional Programming In Lean