Life: Created or Evolved?
Java- 1254 bytes- a very poor solution
import java.util.Arrays;
public class z{
static boolean u=1&gt;0,v=0&lt;1;
public static void main(String[] a){
int y=a.length,x=a[0].length();Boolean[][] l=new Boolean[x][y];for(int i=0;i&lt;a.length;i++){l[i]=m(a[i]);}
Boolean[] n=new Boolean[x*y];for(int i=0;i&lt;n.length;i++){n[i]=v;}
while(n.length==x*y){Boolean[][] o=new Boolean[x][y];for(int i=0; i&lt;n.length;i++){o[i%x][i/x]=n[i];}
n=p(n);o=q(o,x,y);int r=0;for(int i=0;i&lt;x*y;i++){if(o[i%x][i/x]&amp;&amp;l[i%x][i/x])r++;}
if(r==x*y){System.out.println(&quot;evolved&quot;);return;}}System.out.println(&quot;created&quot;);}
public static Boolean[][] q(Boolean[][] o,int bx,int by){Boolean[][] s=new Boolean[bx][by];for(int x=0; x&lt;bx; x++){for(int y=0;y&lt;by;y++){
int t=0;for(int tx=-1;tx&lt;2;tx++){for(int ty=-1;ty&lt;2;ty++){if(ty+y&lt;0||ty+y&gt;by-1||tx+x&lt;0||tx+x&gt;bx-1)continue;if(o[tx+x][ty+y]){t++;}}}
if(t&gt;1&amp;&amp;t&lt;4){s[x][y]=u;}else{s[x][y]=v;}}}return s;}
public static Boolean[] p(Boolean[] b){boolean w=u;Boolean[] x=new Boolean[b.length];for(int i=0;i&lt;b.length;i++){if(w&amp;&amp;b[i]){x[i]=u;w=u;}else if(b[i]||w){x[i]=u;w=v;}else{x[i]=v;w=v;}
}if(w){x=Arrays.copyOf(x,x.length+1);x[x.length]=u;}return x;}
public static Boolean[] m(String s){Boolean[] x=new Boolean[s.length()];for(int i=0;i&lt;s.length();i++){x[i]=s.charAt(i)=='1';}return x;}}

It takes input via command line.
What it does
No fancy tricks here, simply a brute force solution. It goes through every possible beginning board of size X,Y and iterates it once thru the Game of Life algorithm and checks it against the input board. This takes a VERY long time, as each board of size x by y has 2^(x*y) possible combinations. It took almost 10 minutes to run a 4x5 board. Stupidly silly for something that is simpler than it is.
If it is possible that it was an evolved board, it prints &quot;evolved.&quot;, and if it couldn't have been evolved, it prints &quot;created.&quot;.