Skip to main content
Public Access

Solution to Proof by Induction

New You City

by Mike Seplowitz

This puzzle is about inductees into the Rock & Roll Hall of Fame and Rockstar, a programming language “designed for creating programs that are also hair metal power ballads”.

The sections of text look like song lyrics but are also marked up and formatted as source code. Some of the “lyrics” sound fairly natural (many are actual song lyrics), but others sound rather artificial, and a few use words that are common to programming like let and while.


Here’s a brief overview of some Rockstar constructs used in the puzzle:

There are three types of variables in Rockstar.

  • simple variables: a single word, like guitar
  • common variables: a modifier and a word, like the guitar or my guitar (the modifier is part of the name, so these two examples are different)
  • proper variables: multiple words, all capitalized, like Jimi Hendrix
You can also use pronouns like they and it to refer to the most recently parsed variable.

Rockstar has aliases for

  • constants, so you can write ok and lies instead of true and false
  • operators, so you can write with without of over instead of + - * /.

You can assign to variables using

  • let variable be expression
  • let variable be operation expression to perform compound assignment (let x be with y is x += y)
  • put expression in|into variable
  • variable say|says|said unquoted string
  • variable is|are|was|were poetic value, where the poetic value can be a constant or a poetic number, which forms a number whose digits are the lengths of the words in the phrase (modulo 10).
The contractions 's and 're are aliases for is.

Rock and Roll are array/queue operations.

Cast and burn convert strings to numbers and numbers to unicode characters.

In Rockstar, you listen to input and say|scream|shout|whisper output.


The first ten programs can be completed by filling in the blanks with the titles of songs by a single Rock & Roll Hall of Fame inductee. Rockstar language syntax and semantics help constrain which songs can be used and where. Clues are also provided by song lyrics or references, or parenthetical parts of titles (which do not affect the code, since parentheses are used for comments in Rockstar). The list of initials below each code block should also help with discovering/confirming the list of songs.

Sam Cooke

I was born by the river, in a little tent
Put it into my heart
It's been a long time comin', but I know
A Change Is Gonna Come
Heart is understanding, courage, compassion
Let there be a change of heart

You're making not a sound
That's Where It's At
Love is a blessing
Worry is my gently nagging kinsman
While my heart ain't gone
Let my heart be without worry
Let that be with love

Let me be that with you, you, you

A fish was made to swim in the ocean
A boat was made to sail on the sea
You Were Made for Me
My dreams were so real
Let them be of a fish without a boat
Let me be with my dreams of you

Grandfather's Clock was too large for the shelf
It was taller by half than the old man himself
The Song Is Ended
Let The Lord be there with me

Peace is satisfaction. Heartfelt moments, relaxed sighs, waterfalls cascading noiselessly
Put the song of the Lord into my heart
Let it be of peace
Turn them up
Let Grandfather be with Him
Whisper it
I = 42352164
my_heart = I
my_heart = 41445314
a_change = 54
heart = 370
there = a_change * heart

you = 6315
that = 532
love = 18
worry = 2677
while my_heart != NULL
  my_heart -= worry
  that += love

me = that + you + you + you

a_fish = 424235
a_boat = 424233
you = 432
my_dreams = 24
my_dreams *= a_fish - a_boat
me += my_dreams * you

grandfather = 5335335
grandfather = 62443337
the_song = 5
the_lord = there + me

peace = 2.9775091
my_heart = the_song * the_lord
my_heart *= peace
my_heart = round_up(my_heart)
grandfather += my_heart

The Four Tops

Yesterday's Dreams have changed
An alternative is a different meaning
Let it be of yesterday
Our love is changed
It's the Same Old Song, but
Let it be with an alternative

Your Love Is Amazing
If your love ain't gone
Loving You Is Sweeter Than Ever
Let it be with your love, our love
My life was loneliness
Put my life without Loving You in gloom

Restriction is a basic inability, with expensive ambiguity. Stops forward motion
That's not a street you can walk
Society Asks Are You Man Enough?
What Is A Man?
He's not ashamed to lose
There is hope for future generations
Let them be without what, Society Asks
Let that be without restriction
Put that over there in rooms

This House is just a place
Let it be 7-Rooms of Gloom
Build them up, up
Turn them up
Whisper them
yesterday = 647
an_alternative = 197
an_alternative *= yesterday
our_love = 7
our_love = 34343
our_love += an_alternative

your_love = 7
if your_love != NULL
  Loving_You = 744
  Loving_You += your_love + our_love
  my_life = 0
  gloom = my_life - Loving_You

restriction = 159499.576
that = 316334
Society_Asks = 336
what = 13
what = 3724
there = 4361
there -= what + Society_Asks
that -= restriction
rooms = that / there

This_House = 415
This_House = 7 - rooms * gloom
This_House += 2
This_House = round_up(This_House)

Aretha Franklin

You're A Sweet Sweet Man
All I Know is it's so doggone good
This Girl's In Love With You

I Say A Little Prayer for you
Put it in my heart
Shatter it
That's how it must be to live
Let it be Without You
Let that be of my heart

Love Is The Only Thing that matters at all
You're All I Need to Get By
It was plain to see, you were my destiny
Until You Were Gone
I said I'd get over you, baby
Let love be with you
Break it down

The freeway's jam-packed. We ain't goin' nowhere!
The perfume is a stinky pungent exaggeration. Cement 'n' blacktop
Put the Freeway of Love in the mirror
Turn it around
Let This Girl be over it

A Rose Is Still A Rose
You're still a flower, baby girl
There's a woman right next to you
Sisters Are Doin' It For Themselves
Put All I Know of you, sisters in my soul
Let that be with This Girl of my soul over there
Turn it around

Rock Steady like exactly what it is
Push steady like we see the light
While steady Ain't Nobody (Gonna Turn Me Around)
Join steady in harmony
Cast them into the water
The Thrill Is Gone (From Yesterday's Kiss)
Put it in steady

Let that be with the water
Let it be with the perfume of a rose
Turn it around
Whisper it
you = 1553
All_I_Know = 3274
This_Girl = 2443

I = "A Little Prayer for you"
my_heart = I
my_heart = my_heart.split("")
that = 324224
that -= you
that *= len(my_heart)

love = 3454723
you = 314232
you = 5233427
until you == NULL
  i = "I'd get over you, baby"
  love += you

the_freeway = 0.2447
the_perfume = 1672.618
the_mirror = the_freeway * love
the_mirror = round(the_mirror)
This_Girl /= the_mirror

a_rose = 514
you = 51644
there = 155423
sisters = 4230
my_soul = All_I_Know * you * sisters
that += This_Girl * my_soul / there
that = round(that)

while steady != NULL
  harmony = steady.join("")
  the_water = parse_number(harmony)
  the_thrill = NULL
  steady = the_thrill

that += the_water
that += the_perfume * a_rose
that = round(that)

The Impressions

My song says People Get Ready
There's a train a-comin'
Let it be of my song
Put it into my heart

Freedom is self-evident, unalienable
Justice is blind
Equality is three hundred years overdue
This Is My Country
Let it be of freedom, justice, and equality

If there ain't freedom
Shatter my heart

If there ain't justice
Something's Mighty Mighty Wrong
Let us be something of my heart
Hope is our foundation. Permanent and solid, enduring
Build it up
Let us be of hope
Turn it up

If there ain't equality
My strength is a force to be reckoned with
We're gonna Keep On Pushing
Put it with my strength into our souls

Delay was never ours
Knock it down
Shout this without delay with us, our souls
my_song = "People Get Ready"
there = 157
there *= my_song
my_heart = there

freedom = 21
justice = 5
equality = 5757
this = 27
this *= freedom * justice * equality

if there != freedom
  my_heart = my_heart.split("")

if there != justice
  something = 665
  us = something * len(my_heart)
  hope = 30.9358
  hope += 1
  us *= hope
  us = round_up(us)

if there != equality
  my_strength = 152284
  we = 5427
  our_souls = we + my_strength

delay = 54
delay -= 1
print(this - delay + us + our_souls)

The Isley Brothers

You're the Key To My Heart
Rock That Thang like a fox
The Heat Is On
That's the Way Love Is
Put the heat of you with that into your hand

Carefree is easy
Let yourself be carefree
It's a Disco Night (Rock Don't Stop)
Put Yourself In My Place
If my place ain't wrong
Everything Is Alright
Let it be without That Thang, That Thang
Let my place be of everything
Put your hand in mine
Let it be without my place

Pop That Thang in the barnyard
Let mine be with it

The sheets are aquamarine. Faded
This Old Heart's broken 'n' worn
Let it be Between the Sheets
Build it up

Shout This Old Heart of Mine (Is Weak for You)
you = 33225
the_heat = 2
that = 3342
your_hand = the_heat * you + that

carefree = 4
yourself = carefree
yourself = 155
my_place = yourself
if my_place != FALSE
  everything = 7
  everything -= len(That_Thang) + len(That_Thang)
  my_place *= everything
  mine = your_hand
  mine -= my_place

the_barnyard = That_Thang.pop()
mine += the_barnyard

the_sheets = 0.5
This_Old_Heart = 614
This_Old_Heart /= the_sheets
This_Old_Heart += 1

print(This_Old_Heart * mine)

Etta James

A girl is tremendous
A woman is formidable
So are their dreams
It's a Man's Man's Man's World
If it's nothing without a woman or a girl
Say It Isn't So

Something's Got a Hold on Me
Last is empowering
A piece is saying goodbye
Love's Been Rough on Me
Put something with love into my life
A Change Is Gonna Do Me Good
The Blues Is My Business
Let this be a change between the blues
Turn it around

Put 842-3089 (Call My Name) in your phonebook
Rock your dial with it
Put it At Last into my heart
Put a Piece of My Heart into your song
That's All I Want From You
Let them be without your song, and so

Our story is beginning! Hallelujah!
Yesterday's Music is gone
Let it be without our story
Let the end be that without this
Feeling is honest, come my new day
Shout the end of yesterday with feeling
a_girl = 0
a_woman = 0
so = 56
so = 14445
if (so == NULL - a_woman) OR a_girl
  print(so != so)

something = 31422
last = 0
a_piece = 67
love = 4522
my_life = something + love
the_blues = 28
a_change = 5224
this = a_change / the_blues
this = round(this)

your_phonebook = 842 - 3089
my_heart = your_dial[last]
your_song = a_piece * my_heart
that = 31443
that -= your_song + so

our_story = 90
yesterday = 524
yesterday -= our_story
the_end = that - this
feeling = 64233
print(the_end * yesterday + feeling)

Bob Marley

What's New Pussycat
Everything's gonna be all right
The Sun Is Shining, the weather is sweet
Let it be what of it

There was a Buffalo Soldier in the heart of America
Running is a way
My Cup is a humble vessel
Let it be over running
let them be with the sun

The highly are humble
The lowly are just the same
Jah Is Mighty
Let Him be with the highly, the lowly, the highly, the lowly
Put my cup with Him into Jah

Johnny Was a good, good, good, good man
Let Jah be with him
Let love be everything of Jah

Fear is a harsh sister
Everything is not without sadness. The adventurer travels far afield; chants hallelujah with gratitude
Let it be without fear

Let there be love over everything
Turn it around
Shout it
what = 38
everything = 5235
the_sun = 73725
the_sun = what * the_sun

there = 17723527
running = 13
my_cup = 166
my_cup /= running
my_cup += the_sun

the_highly = 6
the_lowly = 434
jah = 6
jah += the_highly + the_lowly + the_highly + the_lowly
jah = my_cup + jah

johnny = 144443
jah += johnny
love = everything * jah

fear = 156
everything = 377.307366049
everything -= fear

there = love / everything
there = round(there)

Martha and the Vandellas

Here's the deal:
Everybody's Talking
Knock them down
The Hurt Is Over (Since I've Found You)
Let them be with everybody
This Is When I Need You Most
Put the hurt of this into me

The time was so long, but now
You're gonna be in trouble
My Boyfriend's Back
Let me be over it
Loneliness Is A Lonely Feelin'
Let me be without loneliness

Summer's too long
My heart is burning. This (Love Is Like a) Heat Wave
The moon is high. Shiny, luminous ball; milk-white
If summer's here and the time is right,
We're Dancing in the Street

Let This Day Be it over my heart
Let them be over the moon
Let me be without them
Turn them around

Happiness Is Guaranteed
Rock A Love Like Yours (Don't Come Knocking Everyday)
Rock a love like (There's) Always Something There To Remind Me
Unite a love with happiness
Cast it into my dreams

Say it with me
here = 34
everybody = 7
everybody -= 1
the_hurt = 4
the_hurt += everybody
this = 41434
me = the_hurt * this

the_time = 2433
you = 5227
my_boyfriend = 4
me /= my_boyfriend
loneliness = 166
me -= loneliness

summer = 34
my_heart = 7.444
the_moon = 4.584
if summer == here AND the_time == TRUE
  we = 7236

This_Day = we / my_heart
This_Day /= the_moon
me -= This_Day
This_Day = round(This_Day)

happiness = 0
my_dreams = parse_number(a_love)

print(my_dreams + me)

The Supremes

Warm is your gentle touch
You Are The Heart Of Me
Perhaps Is There A Place (In His Heart for Me)?
Let the wisdom be perhaps with you

We're happy holding hands
Love Is In Our Hearts
Let the beginning be we of love

Time is power
Put The Wisdom Of Time in chains

Mama said it's a game of give and take
Put her in your thoughts
It's Got To Be A Miracle (This Thing Called Love)
Easy is saying Hello Stranger
It's So Hard For Me To Say Goodbye
My world was revealed
You're What's Missing In My Life
Here's to happiness and health!

Let me be here with you, and your thoughts
Love Is Here And Now You're Gone
You're not there, and the lonely cry fades in the air

If love ain't easy
Happiness is eluding me
This Is The Story
Let it be of my world
Let me be over this, love
Put me in love

Put (Don't Break These) Chains of Love in my heart
Loving You Is Better Than Ever
Let my heart be over Loving You

Pain is our lopsidedness. Living is many kinds of feelings
My words were never mine alone
Let the end be her without pain, my heart

Let tomorrow be The Beginning of the End
Turn it down
Shout it
warm = 465
you = 3522
perhaps = 515
the_wisdom = perhaps + you

we = 575
love = 236
the_beginning = we * love

time = 5
chains = the_wisdom * time

mama = "it's a game of give and take"
your_thoughts = mama
your_thoughts = 32217
easy = 658
easy = 2432237
my_world = 8
you = 57224
here = 2936

me = here + you + your_thoughts
love = 43354
you = 3533635233
if love != easy
  happiness = 72
  this = 35
  this *= my_world
  me /= this * love
  love = me

my_heart = chains * love
Loving_You = 644
my_heart /= Loving_You

pain = 32.624528
my_words = 545
the_end = my_words - pain - my_heart

tomorrow = the_beginning * the_end
tomorrow = round_down(tomorrow)

Stevie Wonder

Love's in Need of Love Today
Hate's goin' 'round breaking many hearts
Let me be love without hate

You Are The Sunshine of My Life
That's why I'll always be around
My Love Is With You, where ever you are
Let me be with you, my love
Put that in your heart

My Love Is On Fire
My heart is on the wild
That's why we made it through the years
I Was Made To Love Her
Let my heart be with her
Each Beat is a new soothing, lilting descant. Twinkling star of evening
You're so Uptight (Everything's Alright)

Freedom is coming
It's Wrong (Apartheid)
If freedom ain't right
She's lovely, isn't she?
Let freedom be With Each Beat of My Heart
Turn it around

A song is strong in my soul
Put freedom With a Song in My Heart

If my heart is as big As your heart
Let me be with you, my love, my heart
Let your heart be with that
Let me be with your heart
Say it
love = 24245
hate = 45846
me = love - hate

you = 38224
that = 33626
my_love = 435433
me += you + my_love
your_heart = that

my_love = 24
my_heart = 234
that = 3242735
i = 4243
my_heart += i
Each_Beat = 13877.9427
you = 27

freedom = 7
freedom = FALSE
if freedom != TRUE
  freedom = 643
  freedom += Each_Beat * my_heart
  freedom = round(freedom)

a_song = 6224
my_heart = freedom + a_song

if my_heart >= your_heart
  me += you + my_love + my_heart
  your_heart += that
  me += your_heart


The final(e) code block is a complete Rockstar program, but it does nothing unless given some input.

Our dreams are resplendent vermilion, gleaming warmly
Thought is a path, not a destination
Reality is a tenacious, steadfast matter
The earth is solid
The oceans are transparent
My forge is a foundation
Our love is strong. True
Let it be of the earth
Burn it

Until our dreams are reality,
The cosmos is mysterious
Rock it
Roll it
Listen to your heart
If it's empty,
Break it down

Split it with silence of thought
While your heart is as big as the oceans
Roll your heart into your soul
Roll your heart into your voice
Let your soul be with your voice
Burn your soul with my forge
Cast your soul into the flames
Rock the cosmos with it

Build our dreams up
Unite the cosmos with our love
Whisper it
our_dreams = 1986
thought = 14311
reality = 1996
the_earth = 5
the_oceans = 1
my_forge = 10
our_love = 6.4
our_love *= the earth
our_love = unicode_char(our_love)

until our_dreams == reality
  the_cosmos = UNDEFINED
  the_cosmos = [the_cosmos]
  your_heart = a line of input
  if your_heart == ""

  your_heart.split("" * thought)
  while your_heart >= the_oceans
    your_soul = your_heart.pop()
    your_voice = your_heart.pop()
    your_soul += your_voice
    parse_number(your_soul, my_forge)
    the-flames = unicode_char(your_soul)

  our_dreams += 1

The inductee programs end in an output statement, each printing an eight-digit number when run. The programs were given in alphabetical order by artist, so they should be reordered before extraction. Each artist was inducted into the Hall of Fame in a different, consecutive class year, so the outputs should be reordered chronologically (the final program’s loop from 1986 to 1995 also helps clue/confirm this).

Sam Cooke198667488265
Aretha Franklin198782508782
The Supremes198869496984
Stevie Wonder198965866884
The Four Tops199084697372
The Impressions199169826869
The Isley Brothers199284837870
Etta James199372698473
Bob Marley199469708382
Martha and the Vandellas199550798469

Giving the outputs above as input to the final program produces the following output:

C 0 R A
R 2 W R
E 1 E T
2 O T E

Reading down the columns gives the answer to the puzzle: CREATE THE 2021 VERSE FOR WE DIDNT START THE FIRE

Author’s Note

Many thanks to Dylan Beattie for creating Rockstar in the first place, patiently responding to my questions, and being open to my suggestions.

Thanks also to Gabor Schermann, author of Rocky, who made me feel welcome right away.