Pretty sure that when you put it in the machine and the machine tells the driver it's not valid, that's ALL it tells the driver. You know that you didn't buy that ticket yourself, meaning that it's very likely a ticket which your friend had already validated. You actually have more information about what might have happened than the driver in this case, and you're holding everybody else up in your display of righteousness.
Go get a valid fare and shut up. People gotta get to work.
Some friend. A friend of mine use to save all his expired TRI-MET transfers, then he only had to pay one fare per day. After that, he just opened up his wallet and looked for an old transfer that had the same code for the day as his earlier one and show that. Also, there are some Mexicans over on East Burnside at Grand who make great copies of bus tickets which they sell dirt cheap.
I sympathize. It's very easy to see if a ticket is valid these days. I think I even know who this driver might be, if he used to drive the 48. IF he says he's just doing his job, he's really not. As the weeklies reported, fare inspectors get paid like 70K a year to say "ticket please."
Go get a valid fare and shut up. People gotta get to work.
BTW, if the ticket was valid, you probably would've put up more of a fight.