Engineering
Give a recursive algorithm that takes as input a non-negative integer n and returns a set containing all binary strings of length n. Here are the operations on strings and sets you can use: a. Initialize an empty set S (write as "S : = "). Use any explicit strings, e.g. lambda, 0, 1, 00110101. Add a string x (as an element) to a set S ("add x to S"). Concatenate two strings x and y ("xy"). Return a set ("Return S"). A looping structure that performs an operation on every string in a set S "For every x in S // perform some sequence of steps with string x. End-for'' Bonus points for adding elements to the returned set in order of increasing value (e.g. 000, 001, 010. 011, 100. 101, 110, 111). (b) Verify that your algorithm is correct using induction. (Depending on your algorithm, you may or may not need strong induction.)