جيد morning everyone so my name is Anas Nashif principle engineer at Intel I will be talking about Zephar in general and the history behind Zephar how Zephar became to be how Zephar was created the ideas behind Zephar and progress over over time show you some some some of the major things that happened over the years before we launched the project as an open source project all the way to where we are right now and you know a few thoughts about the future as well and where we are going so the assumption here that you are somehow familiar with Zephar but if you are not let's see how I can jump slides here if you are not a quick introduction so the Zephar project was started by Intel in 2014 and was publicly launched as a Linux Foundation project in 2016 with Synopsys, NXP and Windriver back then as as the founding members I'm saying here it was started in 2014 and you would see the details that that's where the whole idea and the concept was established and it took us two years actually to take an idea or a need all the way to making it an open source project you know open for everyone and you know with with industry partners and so on yeah so that's if you have open source something internal you know in your company you would know what I'm talking about it takes a long time yeah I mean there's a lot of processes a lot of things that you know you need to get tried to be successful in the open primary goals of the Zephar project adoption was to to to have adoption by Silicon vendors and the embedded community while embracing the open source and open ecosystem vision of the founding members and the idea here was to to put something out there that solves some of the problems that existed back then in terms of fragmentation not having like you know and a real open source solution for embedded controllers and having something with governance and you know with beside being open source but also have a community and something that is driven by the community yeah the idea also was to to create a sustainable open source system something that would survive over the years and something that does not depend on one single vendor or a few vendors you know and something that is driven by the community obviously doing that while providing value to firmware developers inside the within the you know the founding members but also others that actually have joined the project later most of the goals actually have been achieved with the majority of Silicon vendors adopting Zephar there are a lot of products that have been launched over the years starting like from the first year all the way to I mean every day we hear about new products launched using Zephar there are plenty of products out there that are using Zephar we are not aware of that's not something that boots up with a logo on your screen and that's something usually is hidden behind you know and on a controller or on a bc and you don't get to see you know Zephar booting and with guides you know showing how and like like with Linux and with Windows yeah so that's there's a lot of adoption out there we try to track all of this I would be talking about some examples there but it's you know since the project has been launched we have seen a lot of adoption and this continues to grow the project also maintains like a major role in the open source community I mean we are not a standalone project you know on an island in the middle of an ocean we actually collaborate and work with many other projects and the Zephar itself became like an essential project and like ranked among the top critical open source project by Google you know so a ranking that is maintained based on based on community growth you know activity and you know adoption and so on so you can take a look at that and and see other projects as well at the same level as with Zephar so just to give you an idea where we are and I mean these numbers are you know give and take so don't quote me there it's not accurate by the unit there but it gives you an idea so as I said project was started 2014 launched 2016 a growing number of contributors this number I just got from github the other day over 80 000 commits I usually you will see the reference to commit as a metric across all over the slide that's not something I usually like because this is like a very bad metric in my opinion but at least when you compare apples to apples that's actually you know it gives you an idea you know about projects and activity in projects in terms of hardware support at the moment we support at least 13 uh different eyes us architectures we launched the project actually with just three x86 arm and and the synopsis arc in the meantime we have different variants of those like 64 bit we have you know more architectures added over the year and I will show a few examples of what has been added over the years there but it is it is like something in terms of hardware support it covers most of the things out there that you know would use a micro control or the choir and artists in this case in terms of platforms over 500 from different vendors over 50 40 releases over the years we just released 3.4 a few weeks back we have two lts releases behind us long term support releases over 1 million lines of code that's not that will show you that this is not just you know an artist's scheduler or it's actually more than that with a lot of things integrated a lot of you know subsystems services drivers hardware support documentation obviously etc this is the number of lines lines of code in c so there's there's a lot of a lot of content there a lot of things that you can use obviously every software project has bugs yeah so we have not proud of the number but it's something to show yeah 376 خلاص issues that shows you where we are in terms of we also fix bugs we don't just introduce them so over 11 000 over the years and in terms of contributions how things go into the project we use github and you know we got to this number of commits and this number of lines of code with over 40 000 per request and that's a lot yeah so with that said i mean and and going back to the title of the presentation when when you look at the zephyr project the first thing you know probably you want to see how how all of this has started and you'll see this you know as typical in a in a get rebusery you know when when you have written something and the first commit you have no انسبارات what right first commit right i mean this is very typical or initial import or whatever very typical and that's you know what happened back then in 2015 and obviously this is not like somebody submitted submitting a readme file and then things started this this was you know something that existed somewhere else and you know the way the way it happens in in commercial entities and you know you just squash everything and just put it in one commit yeah so obviously there was something before that yeah a lot of activity getting to this point and this is this is almost one year before the public release and this was required because as i said earlier when you release something like zephyr and altos where you actually looking for collaboration and you know members of the project and and you know doing things in open source speaking the right license speaking the right name creating the infrastructure around it you have to do a lot of preparation so a lot of work has gone into making this happen before the the public launch in 2016 in february 2016 so the commit i have just shown is is here basically and that's well you can see yeah so it's you know in april 2015 obviously a lot of things happened before so this is not a lot of work has happened i will go into that but this this timeline here shows you basically a lot of activity over the years obviously a lot of things i mean i i didn't go into what happened last month or you know last year i mean there are a lot of things still happening it's not like the the project is becoming inactive or anything like that that the the purpose behind this slide is to show that okay we have launched and there was a lot of things because because it was launched with an idea with a goal and probably like you know it was small enough that you know it walked the way it was but when the project grows when you get more adaptor when you get more members when you get more views and ideas about how to solve the problem when you want to support it on different architectures things start adding up and certain things that you have launched with might you know a few layers later don't won't make sense or won't scale or whatever so a lot of work went into creating or making that scalable and and usable by by many of the vendors that joined the project or the members who joined the project later on so there was a lot of activity in the first three or four years that includes like adding new architectures changing build systems introducing different ways of defining hardware device tree introducing different ways of you know managing third party modules vendor has and so on using west and and so on and so on and directly after most of this activity we managed to release LTS 1 1.14 in this case which which was like one a major release in terms of like after a long time in development that many many many members started using you know to base products on yeah and that obviously after LTS 1 things didn't stop and we continued to add more features i didn't so don't be angry if i didn't add your feature here in terms of like a major milestone i just you know you get the idea a lot of things are going in every month every day yeah and it's it's it's really significant yeah there is like too much to list here and going back to where things have started so i was talking about the first commit so obviously what i was showing that was not the first commit yeah and that actually you know just to show you how things were staged there was another first commit that we had which was how the project actually you know it gives you an idea where the project came from and in this case that was like in late 2014 where we got or we started collaborating with wind river and we got like the first drop of code from wind river based on dx micro or as they call it viber now the interesting part here is that this code i mean in one way or another was already you know running as an artist on some products so it was not some concept or anything like that and probably this code is here if you have like a laptop from three four years ago this code that i'm showing here is is running on your laptop an inter laptop yeah uh so that that was like production quality in many in many ways has a lot of features that went beyond what zafar wanted probably to do and that's where a lot of the work went in so going back here so the the project or the the concept was announced in early 2014 in an internal conference at intel and that's where a lot of work broadly happened i was not involved in this back then in inside wind river we got this code drop we started working on the zafar application i called that here although back then it was not even called zafar and i joined actually the whole effort like in early 2015 and that's where we took this code and started you know moving forward and and making all of this work just a note here a quick note is that before the public launch of zafar as zafar wind river also launched something based on the same code base a few months earlier as rocket this this thing doesn't exist anymore but it was supposed to be the commercial version of zafar it's like an downstream version of zafar that is you know maintained in a in a cloud ide wind river helix app and uh yeah this i mean if you go search for that that doesn't exist anymore obviously zafar was a little bit maybe overpowering or people wanted to do that open sourcing and not go with with commercial solutions or it was it was not ready for prime time there yeah so having said all of that i mean and looking at at at the phases so there are like the early days of zafar and a lot of things happened there yeah so just to give you an idea about what happened so basically by the release in 2016 we were at approximately 7 000 كومتس in first commit in the current zafar 3 was 2200 كومتس in squash كومتس so a lot of things happened in this year where that's explained here so we had to clean the code you know just imagine you're getting some code that was meant internally maintained and you have to put it out there so you have to run it through check patch or clean up you know the coding guidelines coding style uh the build system was a proprietary like custom build system so most of the people working on this came from a linux background so we embraced the config cable so we moved like from this custom build system to cable we introduced the device model also based somehow inspired by linux and we also removed a lot of features a lot of features that actually we added later on in the zafar project so for example the user space was implemented in one way but it was not it was literally a very custom implementation so we had to remove it you know and a few other features to be able to to release that in open source some of this feature will added later obviously when you release something you want to have some hardware so you know we added the launch hardware i will show a picture of that and started implementing the first abis that actually existed today in zafar right like gbio i square c i don't know and obviously a lot of these things went through a lot of transition and transformation but the the the origin of all of this that the device model and how it works how the abis etc that that was there from the very beginning if you are doing something with zafar and this is like one of the strength of zafar is with that with that with the obstruction of of hardware you can and that's was like really the selling point is that you you you write an application your application can be moved to other architectures or other vendors without changing too much you still have to change here and there but the idea is that your abi is hardware agnostic in this case yeah and that was the selling point and in in terms of like getting vendors and buy in and getting more members but it was also very important for us at Intel because this is also where we wanted to go in terms of like bushing zafar as you know an artist to replace like custom implementations of embedded controllers in the company لائسنس just a quick note on لائسنس so originally actually we wanted to read that as bsd but at that time we were like in lots of negotiations with different potential members and one of them requested actually something else so you know we had to go and replace or change the license from from bsd to to abachi 2 in this case and that's what we have today yeah so zafar is released under abachi obviously that you know that the main problem is that it's not compatible with gbl and and and stuff like that and this is right now and given where we are back then obviously that probably didn't make sense in terms of oh this really has nothing to do with linux in terms of hardware support and so on right now we are seeing that that there are a lot of use cases and people looking on using their existing drivers on linux also on on zafar so that is a problem we have to deal with all the time yeah now some some fun fact about zafar and its name so this is actually i found the spreadsheet where we were like brainstorming names for the project and lots of lots of candidates right i mean yeah actually very interesting one right now when you look at that uh so yeah i mean some funny names there and things probably you will not use but actually i mean in hindsight you know i would definitely have chosen something other than zafar right i mean because if you go and google for zafar right now it's it's it's it's tough to find something that you know basically our project i mean just look i mean this is this is just probably one percent of the things that you get yeah it's it's really amazing there are so many things called zafar out there inside intel we have we have internal project internal products called zafar and sometimes i get emails you know and i have no idea what they are talking about yeah it's it's it's really confusing i mean we have to live with that it's uh it's really uh yeah it is hard yeah actually last night when i was researching i even found out that zafar project.org our domain was was taken like 20 years ago by some you know real whatever hobbyist site or whatever i mean this is this is a very busy name so just to go back to how we launched we launched basically with bots a bot actually for i said three architectures and these are the bots that we launched with yeah so there was the arduino one on one actually the main reason why intel started all of that if if you remember there was the intel query which is like a microcontroller that actually had three architectures on there on it yeah so it was it has x86 it has arc and it had arm the arm part was a Nordic BED controller that actually run basically a custom firmware but the idea was to run zafar on the intel the x86 and the synopsis arc so that's where we have launched with obviously we had support for you know generic arm boards like freedom board in this case was also one of that man or first boss to be supported are doing a duo and intel galilee or if you remember these days yeah you could actually run linux at that on this thing as well yeah but actually yokto i think used to run on this but we use that for development and until recently actually we had some drivers like you know from these from the days of galilee or and and after we you know these spots actually don't exist in zafar right now i mean nobody's using them i don't want to be maintaining them so i actually we removed them at some point yeah so going back to that you know growing and developing on altos for everyone that's that's really that when when a lot of we were getting a lot of a lot of contributors a lot of a lot of members the project was growing and i said earlier there was a lot of things being introduced all the time a lot of a lot of chair right so i was talking about the build system earlier where we had to move internally from cable to to sorry from a custom to cable so then we decided to to move to seamek yeah because cable didn't really work well on windows yeah and we wanted actually to expand our user base and windows actually it's very important platform to support knit walk i mean knit walk by the way i didn't touch on that but knit working and bluetooth were also like you know features that were there from the very beginning so bluetooth as i mentioned because we were talking about iot and and you know b and e best devices so we had like a host controller when we started and over like in this period of zafar where a lot of things were added or or changed we also added the bluetooth controller the Nordic Nordic best one and that's also where when Nordic joined the project so uh we started with the contiki best act you know over time we moved to a native implementation the kernel we moved to uh you know from the the the design of the kernel that we had which was based on a dual kernel mode like nano and micro i will talk about it in a bit to a unified kernel over the years we moved from get it to get hub we moved from like some some random c i provider to get hub action that there are like a lot of transitions like that i i'm i'm just going in into one here one one of the major transitions that we had and i'm glad we did it like very early on was moving from a dual kernel model to the unified kernel the dual kernel model as as you know you can see here in the picture where we had the nano kernel which is like at the bottom and a micro kernel the nano kernel would actually run cooperative threads we call that fibers and the micro kernel runs preemptive threads which we call tasks and there was a lot of problem with this design it worked probably for certain use cases but as a general artist and to be able also to compete with whatever was available out there we needed to clean this up and the problems are listed here i hope that's big enough yes so basically it was not really intuitive there was double context switching something we obviously we want to avoid and a lot of duplication between the the the nano kernel and the micro kernel so objects would have to be sorry implemented twice things like semaphores mutex says and so on and it was not really efficient so basically the unified kernel made the kernel basically we created the concept of yeah okay you have preemptible threads and we have cooperative threads we moved away from fibers and tasks into threads yeah so we had like one way to create threads and yeah one limitation was cooperative threads were not able to to talk or use many objects so that actually went away when we did that and all of that was done with or accomplished by introducing a new API that you know provided some some level of combat ability so the transition period like was a little bit long but we were able to move away and and all users moved to the unified kernel and we don't have the confusion we had initially because like this was like the most common question should i use nano kernel or should micro kernel and you know obviously this this was and the name micro kernel obviously is very confusing as well because you know when you see micro kernel you assume this is like a true micro kernel which is it's really not so with that going to the last phase which is basically the phase where we have adoption products and and really self-sustaining ecosystem yeah that's where we have started as as i have shown you right and that was really very limited a few bots some chemo support things that you can put in your bucket but now and thanks to bricks here that's where zephyr is running right i mean when turbines this is just like you know shows you the extent and where we have gone you know in terms of like having several having zephyr running on on on critical systems like a wind turbine providing power to millions of people and this is just an example there are so many we have like a web page this thing all the products running zephyr and this is this is really growing and going back to the whole open sourcing and the whole vision and how we wanted the project to grow it was very important to us at least at intel when releasing the project is that this will never be perceived or looked at as an intel project that was always like really confusing oh intel oh you guys don't i mean what do you know about embedded systems so etc etc right and i think we did a very good job although we we started like very strong because that that that project came really from intel and wind river but the idea here i'm looking at at how the project has been growing over the years that in terms of contributors in terms of uh uh uh uh members and so on immediately after the launch you will see that the the members or community community in general grows continue to go up all the time we at intel obviously we have a you know a lot of interest and we are very invested in this uh continue obviously to contribute we didn't drop the ball or anything like that but there was no there was was no plan or anything to oh we want to have control i mean right now when you talk about zefar people don't associate that with intel back then it was because i mean we just had a few boards most of them intel related and so on but now we are just like one player among many yeah so that that gives you an idea and this is like the way when i created this chart i was doing that for something internal and i look at that this is really what i want to see in every project like launched yeah because there are different ways how you can put things in open source you can't just like put something in github and and go away and let people figure it out on their own yeah we definitely wanted the growth the industrial collaboration and and the governance as well and and that's how how you see that the project is successful it's not it's not really run or governed by by by one entity so evolving and self-sustaining open ecosystem is like one of the main things that we see right now like in this last phase is that there are a lot of things happening in so many different ways so getting things things done in zefar can be done and by those who need a feature for example you need a feature you submit it you know you submit a board request you submit an rfc either to support your own hardware and we have many vendors that are not even members of the project you know and they you know they submit there is a hardware if needed or you know extend architecture support to support their their their boards add soc support add the boards add the drivers and they can do that on their own right and this can also be done for generic features you know like a new subsystem or things like that obviously a lot of the work happening in the project happens through collaboration so major features usually is something that everybody is interested in this is different than adding a driver for a specific hardware when i'm add when when somebody adds a logging subsystem or or or posix support or you know can support yeah this is something that you will not be using on your own this is something that the community need to participate that's why we have we have like different forums where such features are discussed our abis are never stable unless they are supported on different platforms so you can submit something for your own platform right now but it's it's it's experimental until there are other users yeah and there are also other models where we we can see a lot of things happen is that you know if you can't implement the feature if you are interested in a feature you can there are members in the project and also outside of the project like different people who are involved in the project that can go and implement the feature for you and we see that this is this is like a healthy ecosystem and if you if you have enough power with with your vendor software vendors you can go ask them you know hey my idea doesn't support zephar can you go do that because i am paying your license fee and we see that all the time whether it's an idea whether it's like some tracing debugging tool and and this is this shows that there is interest similar like with compiler yeah and and that's that's really successful so this is approaching that the end of that presentation the the last slide is looking forward so obviously we want to maintain the project health and scale up to support growing user-based contributors and members we are at this level where we see growth all the time in terms of like people submitting changes poor requests member joining the project people asking questions we are at this stage where we have our own conference right thank you for joining and and this is this is this is all really great and i expect all of that to grow and and you know over the years i mean we are just getting started yeah we want to focus we just had a tsc first to first actually the last day we had a lot of discussions and i think one of them man things that we want to be focusing on is is user and developer experience so we want to make migration between releases easy and maintain obviously a stable and and and rich abi we want to you know continue to aggressive basically pursue project safety and security goals this is like some of the one one you know two of the pillars of the project safety and security and there's a lot of interest from different vendors and different members of the project to make this happen and we are looking into doing that and we want to also enable and encourage people to use to more rely on something like like lts you know for product releases and next year we are planning to release the third lts so that's where a lot of the planning happening right now and a lot of the activities trying to figure out what do we want to have in this release and how we want to release that so with that and if you have further questions if you want to interact with us later today we have a session called meet the maintainers where we discuss you know different roles and responsibilities in the project and how we keep up with the project growth so this is going to be in this room as well at around four o'clock so please join us if you want to interact with people who are actively working on zephar or if you have any questions so with that thank you very much i know we have just two minutes for questions yeah or three minutes yeah but go ahead if you have any questions well if we have support for intelzion can you repeat the question yes the question was if we have support for intelzion zephar should run on intelzion as well but it's like a very basic support in terms of like running on the architecture but if you are looking for support for all of the extensions and the features azion processor would have that would be something that need to be added like you have to steal my laptop yeah actually i the history so the question was about history back into zephar so this is a lot of that go back like 20 years ago yeah i mean the way that the transition of the os you know from i think some italian company to to wind river and then to intel that the history i have goes basically to the first first commit that i i showed yeah anything beyond that i you know is is actually if you go and dip the code that we have you will not find any similarity you you will not even see you know that it is coming from this code because zephar has changed so much right so if you're trying to bisect or something like that you it will not work yeah i can tell you that yeah go ahead that's probably all the time we have enough sorry we're at time yeah okay so thank you very much


So I know that many of you have braved the COVID times with online interviews in this past cycle. And some of you are really, really anxious about what it's like to interview online for this upcoming cycle of the PA school application. And so have no fear, put your anxieties aside. I have a video for you. We're going to be talking about the benefits of interviewing online in this coming video. Before I start anything, I wanted to say sorry that I did not put a video out yesterday. It is only because I had some things come up unexpectedly that I had to handle. So that is why I wasn't able to get this video out yesterday. But I wanted to make sure that I did not deprive you of your two videos of another PA a week. So that is why I'm putting it out today. But if you haven't already done so, please go ahead and subscribe if you're new to my channel. If you are a subscriber, thank you for joining me again today. So I wanted to talk about the interview process and specifically the online interviewing for PA school that a lot of schools are kind of transitioning to especially because you know COVID and the pandemic hit. And so if you're concerned or worried about interviewing online, do not worry. Have no fear. I want to give you some tips in a sense or some some benefits I guess you could say of interviewing online. So the first benefit of interviewing online is the money, right? So you get to save so much money by not having to travel to the various different schools that you have been offered interviews for. I know that when I was interviewing for PA school, it was like a big thing, like a big to do because it was none of the schools that I interviewed at were in the state that I was actually you know living at the time. And so I had to travel. It was like me and my husband way to travel. We went, we stayed in a hotel and you know it was like this big to do. And for some of you, maybe you're interested in that, maybe you're happy about like traveling and getting to stay in a hotel. But instead of doing that for a PA school trip, what you can do is save that money and travel for your vacation and actually spend it on places that you want to go. But that is really a big, big component of not having to interview in person. When you're doing this online, it cuts down on all of your travel and all of those expenses that come with travel, which allows you to stay safe and allows your future cohort to stay safe and those that are interviewing with you to stay safe as well. So that is one of the benefits of interviewing online. The next benefit that I think is really important for interviewing online is the setting. So I know that there are so many of us that when we get into new settings, new places, we get really, really nervous. And you don't want to get extremely nervous when you're interviewing for PA school or any really application or anything, even if it's a job. You want to make sure that you're absolutely at your tip top best. And sometimes nerves gets the best of you and allows you to underperform. And therefore interviewing in an online space where you're able to facilitate just a one-on-one conversation. You're able to have that time with the interviewer and it's just you and them allows for a plethora of things to happen. You can build a rapport. You can get to understand their various different nuances.  And so maybe your interviewer likes to do the same. Maybe they don't. Maybe they're stoic. Whatever the case, maybe you get to pick up on those little micro, you know, facial expressions and things a little bit more in the interview online form. Also, you get to choose the place of your interview.  So on top of that, you can also choose, though, the setting in which you are interviewing. So it's something that you can make comfort for yourself. You know, if you want to be like, I don't necessarily want to say in your bed per se, but if you want to like sit on your bed and then you have the laptop somewhere and your background is like not busy and it's really, you know, just kind of soothing and calming, that's something that you can choose. You can choose the space that you're interviewing. But one of those tips that I want you to keep in mind is that you don't want anything to be distracting. So you don't want your background to be distracting. You don't want any background noise to be distracting. And you want to ensure that you have really, really good lighting. Okay. There's this thing that schools are also starting to do where it's kind of like an on-demand video response.  And I think that this is a great opportunity for you to allow your personality to shine. Now, obviously, like my husband's like this videographer and so he always wants to make things like boom, bam. Like, you know, he wants to make things like very bold and nice and like it's great and stuff. For me, I'm like pretty simple, right? And so for some of us that may not be like video savvy like aunt is, you know, you want to ensure that your personality is what's shining through to kind of set yourself apart from some of those that may have a little bit more, you know, kind of video oomph. You can also, what you can do is go on Fiverr and have somebody like edit your video for you if you'd like. And that's like an expense that you might want to come out of pocket for. Since you're saving money by not traveling, you might want to put it into your video editing. But that is an opportunity for you to really again showcase your, how you answer questions and you really take the time, you guys, to like think about these questions and answer them really accurately and to the best of your knowledge so that, you know, you have the opportunity to really shine for these interviewers. But that is another benefit of the online interviewing forum. I think the last thing that I would say is a true benefit of interviewing online is the pressure, right? So I think that the, for me, the pressure is a lot less in the online setting. You know, it's a little more lax. You're at home or you're like in an office space, wherever you choose to be, you get to choose your setting. You get to choose how you're dressing from top up. You get to choose, you know, what the lighting looks like. You get to choose the interactions that you have with this person and it's not like you don't have, there's no awkward stuff. You know, you're not seeing like your competition walking in, making things even more, you know, nerve wracking or you're not hearing all of these other people's stories on like what they did for their healthcare experience and you're sitting up here thinking, oh man, like I only was a CNA or whatever the case may be. There is a whole lot less pressure because there are all of these other intangibles that come in the actual in-person forum of an interview that you do not get when you're interviewing online. It's you and the interviewer. Now be mindful that there are some interviews where it's like a bazillion gazillion people online with you. I think that most schools are kind of moving away from that because they understand that not everybody gets the opportunity to speak or shine like they would like. I had somebody that I was doing a personal consultation session with a little while ago that said that she interviewed and there was like maybe like 50 other people on with her, you know, like it was like a total of 50 interviewers and I was like that's wild because how can you actually, you know, respond to the questions? How can you shine when there are other people vying for the spotlight? And you know in the Zoom forum, it's like, you know, every time somebody talks or there's a little bit of noise in their background, their camera comes on them. And so I think that a lot of schools have understand like or have come to the understanding that that is not necessarily the best type of interview. And so they're doing all of these more small one on one interviews. And so therefore the pressure is significantly decreased, which is pretty dope because that allows you to take the opportunity and then a time to really shine and showcase who you are personally as a person apart from the stats on the paper that they're seeing in front of them. So hopefully this puts you guys at ease. Please leave some comments in the comment session below for me on video ideas that you may have or questions that you may want answered. If you haven't already done so, follow me on Instagram at it on the PA and on Instagram. I get that so you new University subscribe to my channel and thank you guys so much for watching. I will talk to you guys next time.


One is that I signed a problem from the book that's actually wrong. I don't mean I signed one, I didn't mean to assign it to me and the statement is incorrect. So I want to talk about that really quickly. It's a very subtle thing, but some of you probably would have noticed that somebody already pointed this out to me. So number three in section 2.4. And it's very easy fix. I still want you to do the problem in just the way it's stated is not correct. So this says that if D is a common divisor of A and B, then D is the GCD of A and B if and only if the GCD of A over D and B over D is one. Well, the problem is if anyone has their book open, you can follow along here. So the problem is that if D happens to not be positive, then D certainly can't be the GCD of A and B because by definition the GCD is positive. So if D happens to be a negative divisor of A and B, then the statement is false. For example, D is minus one? Not true. So that's the easiest example. Minus one is certainly a common divisor of A and B. Minus one divides everything, but minus one can't be the GCD because it's negative. So how do you fix it? The assumption now is that D is a common positive divisor of A and B. And it's true, but if it's not positive, the statement is false. You guys clear on this? So let me just restate this. Two four, number three, insert the word positive between common and divisor. That's the best way I can say it. So the, yeah, is everybody okay with this? But you do have to insert that word. If not, it is not true. It's definitely false. Right, but what I'm saying is it's possible for the GCD of, for example, suppose A, B were both one and D was minus one, then the GCD of A over D and B over D would be one, but minus one is not the GCD of A and B. So it's true that the GCD has to be positive, but the other implication, if the GCD of A over D and B over D is one, that does not imply that D is the GCD of A and B. That implication is false if D is not assumed to be positive. So anyways, yeah, you have to, you have to fix that. But just with that in there, everything works out fine. Okay, second thing. So I have good news and bad news. The bad news, I don't think most of you probably won't really care that much about, but bad news is that I don't have the homework done. The good news, the good news will outweigh the bad news. The good news is that I'm going to extend your due date for the next assignment to Thursday. Okay, so, yeah. Both of them. Both of them, both of them, yeah.  You do have class, okay? You do have class, sorry. But you do have class. But I, yeah. James Parmenter, do you know who that is? Yeah, he's pretty good. You'll like him more than me, for sure. He's got, he's got, he looks like he has lamb chops on the side of his face. He's got big, he kind of looks like Elvis a little bit. I call him Lamb Boy. So I'm sure he would be happy if you all addressed him as Lamb Boy. So, yeah. But it's, but you do have class on Tuesday. Yes. Oh, yeah, it is. And I'm going to keep the scheduling of the next test the same, which actually is going to work out in your favor, really, because there's going to be less material on it. So, yeah, the next exam is coming up here before 2-1. The next exam is in two weeks, actually, from today. It's right before spring break.  Yes, it's the 21st. Yeah, it's the 21st. You sort of have to keep, I don't want to push it back after spring break. If I put it to the Tuesday after spring break, that, I mean, that could be good for some people, but disastrous for other people. So I'm going to keep it on that date. Yeah, I think it's best to keep it that way. Okay. And the last thing I want to say before we get started, I'm wasting a lot of time as usual here, but last thing I want to say is just a couple things about the exam. Of course, the solutions are posted online. Some of you maybe have checked that out. You can go to Google to look at the solutions online. They're up there. They're on the web page. It's on the syllabus.  Just Google my name, if you remember my name, Greg Oman. Go on the Math Department web page, and you just click, click, click. You'll find it. I was looking on Blackboard. Yeah, it's definitely not on Blackboard. I have my own web page aside from Blackboard. Blackboard crashes. Every three semesters it crashes, and I just don't want to risk it anymore. But yeah, it's up there. You'll find it. You'll find it. Two things I want to make comments about real quick. One, this is still happening a lot. I know I wrote this on some of your exams. A lot of you are still, this isn't a hugely bad mistake, but it's something you should be paying attention to. A lot of you, when you're writing down your variables, you're not specifying where they live. So some of you might say, okay, well, what's the GCD of A and B? Therefore, 1 is equal to xA plus yB. Really, you should be saying 1 is equal to xA plus yB for some integers, x and y. It's, again, the same thing. Remember what I said before about the pronoun? If I came up to you and said it is cold, I didn't tell you what it was. Okay, that's what you're doing when you do this. You're not saying what they are. You should say, again, you should be writing this clearly for the benefit of somebody who doesn't know what's going on. I know probably that you think that they're integers, but, hang on one second. Some of you, depending, here's the other problem. Here's the other reason why I like to see it, is that some of you are not sure what these things actually are. So if you don't specify, I don't know if you know or not for sure. I think some of you are saying things like, oh, x divides y because I know that x times some real number is equal to y. Therefore, x divides y. We'll know if that real number is not an integer. It doesn't count. That's why I'm also looking for this, because I need to know if you know what you're doing or not. If you don't tell me, I don't know if you know. Yeah. Okay, I've got a question. I am listening to you, by the way. Yes, definitely. Yes. Yes. Yes. Well, if you say something like that, you've already said, okay, s is a subset of n and k is an s. Well, then I know that it's an integer, for sure. If you have a question about your exam, we can talk about it after class. Okay. All right. So everything's still the same. The homework is just due on Thursday. And like I said, you will have class on Tuesday. Here is what we're going to do. So we've proved a bunch of these lemmas and such about the primes, and that's sort of a setup to prove this main theorem of the section, which I want to get through today. It's called, again, the fundamental theorem of arithmetic. So before we do that, we're going to kind of do half of it now. There we go. That's a little better.  I'll tell you what. I'm just going to close this. I think it'll be okay. If it gets really hot, then we'll open it up. If you get really hot, feel free to open it back up. I think it's just people waiting for the class to start. Wow, that was really scary. Actually, I kind of like you to do that. This is something that you all know. Any integer n bigger than 1 is either prime or a product of primes. This is actually just part of it. I'm going to state the whole thing here in a minute. This is sort of half of it, if you will. The other part of it is actually a little harder, but we'll talk about that here in a second. I don't know. Again, I'm old. Maybe you don't do this anymore. But maybe way back in sixth, seventh, eighth grade, something like that, you had problems that said, here's the number 168, write the prime factorization of this. You have a little tree where you break it into these things and then wherever you can't go any further, those are the primes and then you multiply everything together. You all sort of have experience that suggests that this is probably true. And it is. Of course, we're not going to do that. We're going to actually try to write a formal proof of this. As it turns out, it's really not too bad. Let's suppose that this statement is false. Let's suppose not. What we're going to do is we're going to let S be the set of all positive integers n bigger than 1, such that n is not prime and n is not a product of primes. Okay. So what can we say? Well, we're trying to prove that every integer bigger than 1 is a prime or a product of primes. We're supposing that's false. We're going to try to get a contradiction. If it's not the case, then that means there has to be an integer that's not prime and also not a product of primes. If it's not true, that means there's a counter example. There's something that's not prime and not a product of primes. So that means that S is non-empty, by our assumption. We're trying to get a contradiction. By our assumption that S is non-empty. And the reason why S isn't empty again is just because we're assuming... Essentially, we're just assuming it's not empty and we're going to try to find a contradiction. So what can we do? Well, if we have a non-empty set, everything in S is certainly a natural number, right? I didn't say, okay, I committed this sin that I was yelling at you about before, but this is a positive integer. I just got lazy. When I get lazy, I'll tell you I'm getting lazy. And it's bigger than 1. It's not a prime and it's not a product of primes. So everything in S is a natural number. Everything in S is a positive integer, right? So what can we say? There's a property we learned about the positive integers here. We have a non-empty set of positive integers. What do we know about it? Has a least element, right? Well-ordering property, right? We'll call it N, say, okay? Well, here's my question. So N is an element of S. Look at the definition of S, okay? It's a set of all integers, N bigger than 1 with two properties, right? Is N prime? Can N be prime? It's an element of S, right? So it means it has to satisfy that whatever condition is imposed on S. So N is certainly not prime, right? The members of S are the elements that are not prime and not products of primes. So N is certainly not prime. Just by definition of S. Okay. So what can we say about N? And this is why I proved this silly lemon in the beginning, Joe. Well, ultimately, that's true. That is ultimately where we're going to go with this, yes. But we need to get a contradiction at some point that proves that N has to be 1. But yes, you're right. You are right. But the point is, though, that we can't say that just yet. We need to get a contradiction that forces that on us. You'll see here in a second. Okay, so if you go back to Lemma 1, what would Lemma 1 say? If we have a number, an integer N bigger than 1 that's not prime, right? I showed you that it has to be a product of two things that are strictly between 1 and itself, right? That's what we did in the very beginning of class, I think, right, on Tuesday. Okay, so N is RS.  Again, it's just straight from Lemma 1. Okay, so N was the least element of S, right? R and S are both less than N. So R and S cannot be an S because N was the least one and they're smaller. So they're not an S, right? Does this make sense? Okay, again, try to follow this. Some of these ideas are going to come up a little bit in your homework and certainly in problems that are going to come up later. So really, it's going to help you just to try to follow the argument. So what can we say about R and S? Thus, okay, this goes back to some logic. Maybe you did this in discreet. If R is definitely bigger than 1, right? So if it's not an S, then this condition applied to R can't be true, right? If it were, it would be an S. So what can we say about R? If R is bigger than 1 but not an S. Anybody tell me, Joe? Exactly, yes, exactly right. The members of S are both prime, sorry, are not prime and not a product of prime. So if that's not the case, you negate that. It becomes an element that's not an S is either prime or a product of prime. It's one of the two. It's got to be prime or a product of prime. So if it's neither, then that's exactly what S is saying, right? If it's neither. R is prime or a product of primes. Can we say the same thing about S? Yeah, because S is also not in capital, little S, I should say. It's not in capital S. So the same thing is true of little S, right? Okay, now here's the punch line. Remember what N was, right? N is equal to R times S. What can we say about N? So R is either prime or a product of primes. S is either prime or a product of primes. And N is R times S. So N, what can we say about N? Well, you can say even something more specific than that. N is a product of primes. Because it's a product of two things. If those guys were both prime, then N is still a product of primes because it's got two of them, right? So N is definitely a product of primes. And that contradicts the fact that it's an S, right? It's not a prime and it's not a product of primes. There's your contradiction. There is proven now. Okay. So this contradiction then proves the proposition. This is how proof by contradiction goes, right? You assume whatever it is you're trying to prove is false and get both statement P and statement not P, which is, of course, impossible. Therefore, you conclude that your original statement had to be true. Okay. Okay. And then there was another technical lemma, which is just more work than it's worth. And I think I'm just going to skip it and I'm just going to trust that you'll just believe it. Otherwise, I may not get through all this today. So the book doesn't do it either. The book doesn't do it either. I'm just trying to be as rigorous as possible, but sometimes time is more important than rigor. So I'm going to skip this and I'll just, you will all be convinced that it's true anyways. Okay. And so there's just one other thing we have to talk about and then we'll just go into the last part of the proof. And then again, I want to at least spend about 10 minutes or so talking about homework since I won't be here on Tuesday. Okay. Everybody copy this down? No? Okay. All right. I think, and I left out a couple of things here, so somebody please tell me if this is not right. I think we're on definition three now. So I'm pretty sure I defined prime and composite, and now we're on three. Somebody can tell me if that's wrong. Is definition two that we're on? Okay. Let's see. No, I think it is three, right? Okay. So let n bigger than one be an integer or a natural number, they're equivalent in this case. Okay. And let's say that n can be written as a product of primes in canonical form if n is equal to p1 to the alpha 1 p2 to the alpha 2 on down to say pk to the alpha k where p1 is less than p2, which is less than p3 on down. So basically the primes are listed in increasing order. And each of these exponents, each of these alpha sub i's are natural numbers, positive integers. Okay. And so this is just sort of canonical. Just in mathematics really just sort of means natural. That's the way you interpret this. It just means you're just writing, you're grouping all the primes together and then you're just going up an increasing order.  And this is just something that we could try to prove, but again the amount of work that we're going to it is just not, it just doesn't justify, let me say it a better way, it's just not justified because this would be transparently clear to you that this is certainly the case. Any integer n bigger than 1 that can be written as a product of primes can be so written in canonical form. And again I'm not going to write a proof of this, but I just want to give you the idea. What's the idea? The idea is just all the primes you see, just group them all together and then just do it so that you're going in increasing order. That's it. So in this case what we want is 2 squared times 3 squared times 5 times 7. The right side is in canonical form. Okay. Do you guys all buy that?  And you can certainly get canonical form very easily. I don't think I need to write a proof, a formal proof of this. This is just obvious that you can do this. Okay. Hopefully this is obvious. This example made it obvious. What's that? Well, yeah, I mean more or less. Well the proof, technically the proof would be by induction on the number of primes in the product. But I'm not going to do it. I just don't want to. So yeah. You say well if there's only one prime, well there's nothing to do. Suppose that's true for n primes, then you have n plus one of them. And then you just basically say, okay well let me just look at all the first n ones. Well we can write that in canonical form and then just the other guy, wherever it is you just slide it into the right spot. I mean that's really all the proof amounts to. So yeah. Okay. I think that's about all I want to say here. Where am I going? Okay. All right. I'm going to do, okay, oh yeah, okay. So this is the last thing that I'm going to do, is just the fundamental theorem of arithmetic. So we'll do that now. And we should definitely have time to talk about a couple of homework problems before we leave. So okay. All right. Everybody have this down now? Okay. Let me go ahead and start a new page here. Okay. So this is the main, this is sort of the main point of the section here. So let me start up here. Fundamental theorem of arithmetic. And this actually has applications. It seems like I learned this in fifth grade, but there are some applications of this that allow you to do things that are not as obvious as you might think. We'll get into some of that later. Okay. And the statement's very simple, but I'm going to need to explain exactly what this means. Every integer and bigger than one can be written uniquely. That's the key. And this unique part is actually important. It really allows you to prove some other theorems about the rationality of square roots and things like that. I'm getting ahead of myself, but written uniquely in only one way in canonical form. Okay. I should have put this canonical form at the end, but that's okay as a product of primes. And there is something I definitely need to clarify here. Some of you might object and say, no, no, no, no. That is not true. And depending on how you interpret this, you're right. And that's why I need to make a clarification. And this is just the way it's done in mathematics. There's a little fudging going on here. But product of primes, you might say, well, what about five? Five's just a prime. It's not a product of primes. Five's an integer bigger than one, but it's just a prime by itself. It's not a product of anything. Well, when we say product of primes, we mean the product could just include one thing. Okay. So you have to be aware of that. I really want to impress that upon you. Product of primes, five by itself, we include as a product of primes. It's sort of a trivial product, if you will, in the sense or degenerate product, in the sense that there's only one guy there. But that's something you should be aware of. Okay. Okay. So here is the proof. And it turns out the proof is actually not that hard. We have to do a few things here, but it's not that bad. I think you should be able to follow this. Okay. So by proposition one, did I label this observation as observation one? Okay. I'll just say, okay. Well, let me just say observation. Every integer n bigger than one can be written as a product of primes in canonical form. Okay. All right. Proposition one said that every integer n bigger than one is a product of primes. And remember, the observation says that if we get a product of primes, we can always put it into canonical form. So if you combine these together, then we know that every integer n bigger than one can be written as a product of primes in canonical form. The only other thing we have to prove is that it's unique. This is going to require a little bit of work, but it's not that complex. It's really not that hard, though. No, actually, we can just do this directly, more or less. You might be able to do that too. Oh. It depends. It really does depend. And certainly it's possible that you could write a very natural proof that way here, too. I'm just not going to do it that way. Okay. So the question here, this is kind of the complicated part, is what does that even mean, uniqueness? Okay. What does it mean to be able to be written uniquely in canonical form? And I'll tell you what it means. And if you try to follow this long, I think you'll be okay. So let's suppose that, okay, so there's going to be a lot of symbols here, but p1 to the alpha 1, p2 to the alpha 2, on down to pk to the alpha k is equal to, oops, I can fix this, okay, q1 to the beta 1, q2, hopefully my bad handwriting isn't going to screw this up too badly, to the beta 2, on down to qn to the beta n. Now I'll put an asterisk next to this because we're going to refer to this multiple times. Okay, can you guys all read that? Beta 1, beta 2, if you just want to write b's, that's fine too, but really I'm intending this to be the letter beta. Okay. Seriously, can you guys read this? Is this okay? Okay. Well, let me specify exactly what this means. Where 1, each exponent alpha i and beta i, all of these guys are natural numbers. These are all positive integers. 2, each p sub i and q sub i is prime. 3, p1 is less than p2, which is less than dot, dot, dot, which is less than pk. And 4, same thing is true for the qs. q1 is less than q2, is less than on down to qn. Okay. I'm going to try to squeeze this all on one slide here. Sorry for being a little sloppy here. What is it that we have to prove? I want you guys to think about this. Okay, so before I say, you see what I've got here? What this says is really just that this is a product of primes in canonical form and this is a product of primes in canonical form. Right? That's what all this is saying, really. And if I want every integer n bigger than 1 to have a unique expression as a product of primes in canonical form, I really mean that these should all look exactly the same. And so the point I want to make first is let's try to enunciate that. Let's try to clarify that. What does that mean that those expressions are exactly the same? There are several things, actually. There are three things that we need to know. Okay, so if those expressions, and this is what I want you to think about, if those two sides have to look exactly alike, what has to be true? Can anybody tell me one thing that has to be true? Yes, that's true. That's true. I'm going to write that down in a second. Yeah, that's exactly right. All the exponents have to be the same. And the other thing, this is going to write down first because this is the easiest one to prove. k and n have to be the same. They have to be the same number of primes. So let me just say it all and I'll write it down. n and k have to be the same. The same number of primes on the left is on the right. Each of the corresponding primes have to be the same. p1 and q1 have to be the same. p2 and q2 have to be the same, etc. The corresponding powers have to be the same. Then those two expressions will be identical. So those are the three things we need to prove. You guys with me here? All right, so that's what we're going to do. So the first thing we're going to prove is that k in fact is equal to n. The second thing we'll prove is that these p's and q's, the corresponding p's and q's are the same. pi is equal to qi for any i between 1 and n. And remember, after we've proven 1, k and n are the same. So I can pick either n or k. It's the same thing, right? And the third is that the corresponding powers have to be the same. And then we certainly have the exact same expression on both sides. Okay. So that is our goal. So we're just going to establish these three things. And it's not as hard as you might think. It's really not that bad. Then we'll be done with this section. Okay here. Anyone need more time? All right. So let's do one first. So what we're going to do is we're going to let A be the set of the primes with p, right? So A is going to be p1, p2, on down to pk. And we're going to let B be the q primes, right? q1, q2, down to q sub n. And we're going to show that A is equal to B. These two sets are the same. Okay. So I want to be clear about this. Suppose you know the two sets are the same. Well, then k and n are automatically have to be equal because if the sets are the same, whatever number of elements you have in one set, it has to be the same as the number of elements in the other set because they're the same set, right? So you get k equal to n for free if we do that. We're actually going to get a little more than that too. But that's the idea. So do you remember maybe from Discrete how you show that two sets are equal? What do you do, Joe? Yes, that's right. And that is something, if you took Discrete, if you had a reasonable instructor for this class, you should have been exposed to that before. Okay. So we're just going to do one direction because the other direction follows the same way. And I don't want to spend that time on a class doing exactly the same argument again. But well, I'll show you that A is a subset of B. And then B has to be a subset of A for the same reason. Okay. So how do you do this? So you pick an arbitrary element of A, right? Pick any, we'll just say P sub I, right? P sub I in A. And I'm going to suppress this for a time. But we're going to show that P sub I is in B. That's what we're going to do. Okay. This is in your notes. I'm not going to flip back now. But the star, the star equation was just that those two products of primes were equal, right? Just the P sub I's to these powers equals the Q sub I's to these powers. By star, we know that P sub I divides Q1 to the beta 1 dot, dot, dot on down to Qn to the beta n, right? If you look back in your notes to that star equation, you guys should buy that, right? Because P1 times something is certainly equal to that right side. So P1 divides it. Hopefully that's not too much of a stretch here. You guys all buy that? If you look at the equation, right? P1 times something is the right hand side. So by, let's see, by corollary 1, I'll remind you what this is in a second. Okay. Corollary 1, you can look back in this in your notes, but corollary 1 was, the corollary said it, prime divides a product of a bunch of integers and then that prime has to divide one of the integers in the product, okay? So if this prime divides a product of a bunch of these, here's the way I want you to think about it, okay? Imagine actually writing, instead of Q1 to the beta 1, just write Q1 times itself, beta 1 times. And the same thing with Q2 and the same thing on down. So you have all these primes written out. So since Pi divides that whole product, Pi has to divide one of those primes. Not just one of the primes to a power, it has to actually divide one of those primes if you write them all out.  The prime has to divide one of them. It doesn't mean any one of them, right? No, it doesn't. It just means it has to divide some of them. Yes, it has to divide some, one of them, yeah. So by corollary 1, P sub i divides, say, Q sub j, right? Or some j with 1 less than or equal to j less than or equal to n. Okay. Any questions about this? Do you guys see where I'm saying this? It's not just that it'll divide some QI to a power. Well, if it divides that to a power, then just write them all out. Then it has to divide that one guy too, okay? So then what can we say about this? Well, there's also a lemma I proved specifically for this because I knew it was coming. I think it was lemma 2. Lemma 2 said that if a prime divides another prime, they have to be equal. Okay, that's something else we did on Tuesday. So we know that P sub i has to actually be equal to Q sub j because they're prime. Thus, tell me if you believe this, thus P sub i is an element of B, right? It's equal to something in B. It's got to be in B. And of course the exact same sort of reflected argument applies to show that B is a subset of A. It's exactly the same argument, right? Yeah. Are we assuming that j is an integer? Yes, yes. So again, when I'm doing this, I will get, I will be just slightly lazy from time to time because time, well, yeah. But yeah, j's definitely an integer. Similar, right? Okay, so A is equal to B. And if A and B are equal, then they have the same number of elements and therefore K has to be equal to N. That was the first thing we needed to show. Okay, the second case, there's really not much to say here. So the second thing we need to show is that each of these P i's and Q i's are the same. Okay, this is the one I was going to prove with lemma before this that I decided not to. Actually, I'll tell you what. Let me go back here for a second. Okay, and this is the thing that I'm hoping you guys will just take on faith because of time. The P's are listed in increasing order. That's the assumption. The Q's are in increasing order. But if the set of the P's and the set of the Q's are the same and they're listed in increasing order, then the corresponding ones have to match up. They have to, right? The smallest one has to correspond to the smallest one. If it's off at all, then you can't, well, basically you're going to get a contradiction if it's skewed in any way. Since the sets are the same and they're in increasing order, it all has to line up. So all the P's and Q's have to be equal to each other. If the corresponding P's and Q's have to be the same. Like I said, I was going to prove a lemma that proved this rigorously, but I just don't have time to do that. So P I equals Q I, that's an I, sorry, for any I between one and N by the proof of one. In general, if two sets are equal and you have them written this way, they don't have to match up. Because, for example, the set one, two, and the set two, the set one, two, and the set two, there's no order built into the sets. But one and two aren't equal. But if they're listed both in increasing order, then they have to be the same. That's the point. Okay, so we've got two things done. We just have one more thing to do. Okay, so the last thing we have to prove is that the corresponding exponents have to be the same. Okay, so that's what we're going to try to prove. So we now have a one and two. Let me put a star next to this. P one to the alpha one, P two to the alpha two, P N to the alpha N is equal to P one to the beta one, P two to the beta two, on down to P N to the beta N. Okay, and why am I doing this? Well, this just goes back to the original equation that I put an asterisk next to. We've already proven that the number of primes on either side are the same. So we can just use N on both of them, because N and K are the same, and we know that the corresponding primes are also the same. That's why on the right side, I can replace each QI with PI, because we know that they all are the same. We just proved that. So what is it that we have to prove? We need to know that alpha one equals beta one, alpha two equals beta two, et cetera, and then we know that they look exactly the same at that point. Okay, so this is the last thing we're going to do. And again, for the sake of time, I'm just going to prove that, and also for simplicity, I'm just going to show you that alpha one is equal to beta one. And then it's just automatic that all the other powers have to be the same. Why is that? Because the order doesn't matter. You can, I mean, well, okay, at this point the order doesn't matter. You can just, the P two to the alpha two and the P two to the beta two, well then just, because it's multiple agents, just flip those to the front and then just run the same argument again. Okay, so then you can just get it for everything for free after that. Okay, and again, I'm doing this now just because I don't want to say, we're going to prove alpha i equals beta i and then it just gets messier. So let's just do it for the first one and you'll see the idea. Okay. Now here's where, okay, we actually are going to use a contradiction here, but let's suppose not. Then if they're not the same, then either alpha one is less than beta one or beta one is less than alpha one, right? Let's suppose that alpha one is less than beta one. The same proof is going to work the other way. I mean, if beta one is less than alpha one, it's the same exact proof. All we're going to do is divide, oops, sorry, I'm just getting sick of erasing stuff. Okay, so this is in your notes if you're copying it. I just put this equation star. You can look in your notes to see this equation. We're going to divide everything, both sides by p1 to the alpha one. That's what we're going to get. That's what we're going to do. So then what happens on the left side when we divide by p1 to the alpha one? Well, it just cancels out, right? It's gone. And then we just have p2 to the alpha 2, et cetera, on the left-hand side. You guys see this from your notes? Yeah? Okay. p2 to the alpha 2 times p3 to the alpha 3 on down to pn to the alpha n equals, what do we get on the right side? What's the first, what is p1, what is the new power on p1 on the right side? Beta 1 minus alpha 1, right? You guys see that? Dividing through by p1 to the alpha 1, we have, well, when you have the same base, you subtract the power. So we just subtract the power from it and then we get everything else being the same. And now we're basically done. Here's what we have, okay? So we're just going to reuse the proof of 1 to get a contradiction here. And I'll just say what it is first and then you can write it down if you want if you don't want to wait for me to write on the screen. What do we prove in the first, for the first part of this uniqueness proof? We prove that if you have a product of primes written in canonical form equal to another product of primes in canonical form, then the set of primes are the same. We prove that. That's exactly what we proved. Now you see what we have? These are both in canonical form, right? They're still increasing even though we're missing p1, p2 to pn is still increasing. So we have a product of primes in canonical form on the left equal to a product of primes in canonical form on the right, but the sets of primes are not the same because p1's missing now. That contradicts the first thing we proved, that the set of primes is the same, okay? And therefore alpha 1 and beta 1 have to be equal. And then you apply the same argument to all the powers. It's the same thing. Hopefully you guys are with me on this, okay? Can't have this. This is what we've, the first thing we proved is that the set of primes is the same. If you have two primes, products of primes in canonical form, they have to be the same. We have two primes equal in canonical form. The sets of primes are the same, but they're not. There's a contradiction. This is false. And if you want to, just to totally nip this in the bud here, why is it, why are these not the same? Because p1 is in this set, but it's not in that set. They can't be the same because they don't have the same members. Okay? So the conclusion is that our assumption, our contradictory assumption is actually, it leads to a contradiction. And thus these powers actually do have to be the same. And similarly, powers all match up. Alpha i equals beta i for all i. Satisfying one less than or equal to i less than or equal to n. And that's it. That's the proof. To establish the existence of the product, of an integer bigger than one is a product of primes of canonical form. And that any two such expressions have to be the same. Okay. And I told you, and this is good, and now we actually have a little more time this time. So I didn't babble on as long as I usually do. Definitely want to take this time. This will be good for you to talk about a couple of Homer problems. Okay? I can tell you right now because I just, I think I have a pretty good sense of what people find tricky and what they don't. 2.4 number six is going to cause some trouble. Okay? I'm going to give you a, I'm actually going to give you more than a hint. I'm going to give you kind of a roadmap as to how you can go about trying to do number six. Okay? And I'll write it down for you. Okay, so this is it. This is the end of the section. And so we are done now. So homework. I don't know how, if any of you have actually looked at number six yet, maybe it's not due to, well, now it's a week from today. Okay, good. That tells me that you have actually some idea of what you're doing because you just wrecked the whole class by saying that now. Now everyone's going on Google to get their homework solutions. Yeah, but it doesn't make any sense. Okay. They can all go. Yeah, well, for, yeah, that's true. The question is like. Okay. Well, okay. My tea guy did. So there's, there's, there are several ways you can go about doing this. I'm going to do it. I'm going to, okay. In general, there's not just one way to do a proof through multiple ways to do a proof. Some of them, and sometimes you might have a proof that short, but kind of masks the idea. So you kind of left it going, how did you even come up with this? And some of them are a little bit longer, but they're clear to understand this one is going to be maybe a little bit longer, although it's actually not that long. But I think it's, it's much less. It's actually a little bit less messy maybe than what you're talking about. I'm not sure exactly. I have an idea of probably where he was going with it, but here's, okay. So this is, let me just write down the problem first. Okay. Two, four, number six says to prove it. I'm going to abbreviate this. You really shouldn't do this in your proofs. I'm just doing this now to save some time to actually talk about this problem. If the GCD of A and B is one, then prove that the GCD of A plus B and A times B is equal to one. If, so the problem says, basically it says assume the GCD of A and B is one. So in other words, A and B are relatively prime. Yeah. Okay. So then what we're going to try to, you need to prove is that the GCD of A plus B and A B is one. Now I can tell you this. If you just try to go through it by the definition, or if you, okay. So let me just give you a couple of ideas first. There's a theorem that said if you know that some integer linear combinations of two, linear combination of two integers is one, then those two integers have GCD equal to one, then they're relatively prime. So you might think, okay, well I know that, that, you know, XA plus YB equals one for some integers X and Y. And I'll try to use that to somehow mess with that to get something times A plus B plus something times A B is one, and then I'm done. Then I'm done. You, that is something you should probably be able to do. Although I'm not going to go in that direction, actually. I haven't even really thought about it. It's going to probably require a little bit of cleverness and manipulation and such. And this does too a little bit, but I think maybe not as much. So it's not as mysterious where the solution's coming from. So I'm going to go, I'm going to kind of talk about it this way. This is a suggestion. This is not saying you have to do it. If you want to try to mess with this and do what I was just saying, and it's right, that's fine. I'm not saying this is the only way that you can do it. Okay? Here's what I'm going to suggest here. And I'm just going to write it exactly that way. Suggestion. Okay? Not have to or only way. I'm not saying that. Let D be the GCD of A plus B and AB. And I also think this has the advantage of kind of getting you more familiar with some of the tools that are going to come up. You're going to, this is going to come up too a little bit in a homework problem I gave you in 3-1, which I'm also going to talk about here in a minute. Okay. Try to do this. And again, remember, I'm just giving you a kind of a roadmap. I'm not going to tell you exactly how to do these, but I'm going to break it down into a bunch of smaller pieces that should be more manageable. Okay? First thing, one, prove that, and you might want to do this on scratch paper first. Make sure you have all the pieces together and then write a nice coherent argument in your homework. Prove that D divides A squared minus B squared. I'll even give you a hint as to how you go about doing this. This may seem a little mysterious for now. Can you guys see how you might be able to pull this off? Anyone? You know that D divides A plus B for sure, right? This is a GCD. How can you show that it divides A squared minus B squared? Think about factoring, but so what is A squared minus B squared? It's A plus B times A minus B. What's that? Okay, so wait a minute.  I'm just going to say it for the sake of time. I'm going to have time to write all this down, but I want you to just pay attention to this. This is A plus B times A minus B. Most of you should know that, right? You already know that D divides A plus B. So D times X equals A plus B for some X. But then DX times A minus B is A plus B A minus B, which is A squared minus B squared. You see that? Did I do that too fast?  Then D times something is A plus B A minus B, which is A squared minus B squared. Okay? Got it? Okay. There's the first thing to prove that D divides A squared plus B squared. This is not maybe as obvious. Yeah, it does. But in this case, it's a little trickier, though, because we don't know that D divides A actually, right? Here's the hint here. You can write this down again. I'm not going to write all this down for you, but if you want to write it down, you can't. How could we do this? Anybody see? I'm only going to have a couple more minutes to do this, but anybody see how to do this? This may be a little trickier. Well, think about it.  Then D times X times A plus B is A. So if D divides A plus B, then D divides A plus B squared, the whole quantity squared. That's for sure, right? Just multiply both sides by A plus B. And you get D divides A plus B squared. What is A plus B quantity squared? A squared plus 2AB plus B squared. But you've got an extra 2AB that you don't want. But you also know that D divides AB. So D is going to divide 2AB. So then you can get that extra term out of the way because you know that D divides that extra term. So then it's going to divide the difference, basically. D divides A squared plus 2AB plus B squared. It also divides AB. So it divides 2AB. So it divides A squared plus 2AB plus B squared minus 2AB, which is exactly that. Write it down. If you want to ruin it, just write it all down. What I'm saying right now. Write it down. Okay? Now, once you've got this, you can prove that D divides 2A squared and D divides 2B squared. There's not much to this, by the way. Well, you'll see. How can you get this? Subtract. If D divides something into something else, it also divides the difference. There's a theorem. I think it was theorem 2 part G from section 2.2 or something like that that says if D divides AB, then it divides all linear combinations of AB. Okay? So if it divides A squared plus B squared and D divides A squared minus B squared, it's going to divide their sum. What's their sum? 2A squared. Right? And you can do the same thing the other way, to get 2B squared. So, what do you know about D? D is going to divide the GCD of 2A squared and 2B squared. Right? Do you buy that? If it divides both of them, it has to divide their greatest common divisor as well. That's part of the definition of GCD, right? It divides both, and anything that divides both divides the GCD. Now you can use some theorems that I proved in class. You can pull the 2 out. I know I'm going to stop here, but you can pull out the 2. That's something we did in class. And if the GCD of A and B is 1, then the GCD of A squared and B squared is 1 by what I just told you yesterday. Remember one of the older problems I said that we talked about yesterday, if GCD of A and B is 1, then the GCD of A to the N and B to the N is 1. You see, now you can get it, you can will it down to know that D has to be 1 or 2. And then you have to rule out 2, and then you're done. I'm warning you guys, you have to think in here. You have to think in here. And sometimes you have to be a little clever. There's just no way around it. That's the nature of the beast. That's what we do in this course.  But hopefully most of you are thinking that, well, you worry about your grade, but you want to think of these as puzzles. You don't want to think of these out. I'm not saying you should be jumping up and down for joy, and you should spend every Friday and Saturday night doing this instead of going out and having fun. But that's kind of the point of this, is to think of this as a challenge. Think of them as puzzles that you want to figure out. And so some of them get a little tricky. All right. Well, I give you a lot of hints here. So this is one way you can go with this problem. All right. So let me talk about one more problem, then we'll finish up for the day. OK. I go to NewPage now. Is that OK? This is another one I think is going to cause some trouble. 3.1, number 8. Suppose that, I'm going to kind of abbreviate this, but p is bigger than or equal to q, and q is bigger than or equal to 5. p and q are prime here. This is almost kind of a weird problem. You almost think that there's no way this is true. Then it is kind of surprising. Then 24, that's kind of a big number. 24 has to divide p squared minus q squared. Well, yeah. It seems random. It does. It does seem random. But this is where I'm going to, OK. Sorry, trying to collect my thoughts here. We're starting to get to a point in the course where just hammering on things from just using the knowledge you came in to this course with is not going to work anymore. So some of you might think, well, how am I going to do this? I'll divide by 24 using the division algorithm. I'll have 24 cases or something like this. That's not going to work.  And this is a perfect example of this. Here's my suggestion. I really want you guys to listen to this because this is going to maybe help you a little bit to just have an idea of where to start. A lot of you are going to see this problem, and it's OK because you just don't have a lot of experience yet. There's nothing wrong with this. I have no idea what the hell to do. I have no idea how to start this. How am I going to prove 20 plus a weird number? How do I prove this? I have no idea. Well, think of it this way, OK. There's certainly two has to. Maybe I can just prove that two divides it. Maybe I can prove that p squared minus q squared actually has to be even somehow. And I'm just going to talk this out first. I really want you guys to listen. This is going to help you. It really is. Well, how do I know? OK, so if this is true, then two has to divide it. p squared minus q squared has to be even. Why? Why is that to be even? Well, p and q are primes. So p and q, because they're bigger than or equal to 5, have to be odd. Because if they're even, two would divide into them. And that would contradict the fact that they're primes. You guys buy this? It can't be even. A prime bigger than two cannot be even. Because it can't have two as a factor. It only has one in itself as a factor. OK. But then an odd number squared is still odd. This is a corollary of what you guys proved. Actually, some of you just proved the square of an odd number was odd, but that's not what I asked on the exam. So an odd number squared is odd minus, an odd number squared is odd, odd minus odd is even. Damn, so now we've got two. So at least you're getting somewhere. This is what I'm saying. If you don't know how to do the full thing, break it into a sub-piece that you can handle. And then just keep breaking it up until you see kind of what's going on, and then put it all together. That's kind of how you're, very roughly, what you're doing here. OK. And I'm going to tell you, here, this is huge. This will help you on this problem, and I think maybe another problem in this section too. This is really big. And from the notes, let me make sure, no, I'm going to use the labeling the book does. For this section, I want you to be very aware of this corollary, because this will help you. Certainly will help you in this problem. I'm going to say it. You should all write this down. Corollary 2 on page 23. Corollary 2 page 23. And I want you to listen to what I'm saying. OK. We only have five more minutes. I know it's been a while now. But this is what corollary 2 says. And I'll write some of this down in a second. But I want you to listen. You guys should listen to this. Corollary 2 says if you know that A divides in us some number C, and B divides some number C, and A and B are relatively prime, then their product divides C. Listen to this. 24 is 8 times 3. 8 and 3 are definitely relatively prime. They don't have anything in common.  So really, you can break this down into two sub-problems that are easier to manage. Use that corollary to squish it together, and then you get the result. This is what I mean by you guys have to start thinking outside the box a little bit. You've got to start to be clever. Use the tools. Sometimes you have to use the tools, or you're not going to be able to solve the problem. Okay? So the idea is to prove that 1, 8 divides P squared minus Q squared, and 2, 3 divides P squared minus Q squared. Now I'll kind of get it started a little bit on 1, and then we'll stop. But with 3, you're going to do something similar. Again, I'm just sketching the rough idea. I'm not trying to make this polished. Your proof should be a little more polished than this. Well, what do we know about P and Q? Since they're odd primes, they are odd. P and Q are both odd. Again, you need to write down everything clearly. I'm just doing this for the sake of time. We know that P is equal to 2R plus 1, and we know that Q is equal to 2S plus 1 for some integers R and S, right? I'm not going to write all that out, because I just don't have the time, but we know. So what do we know about P squared minus Q squared? Well, how can we get somewhere with this? In this case, you may not actually even need to do this, but I think this is going to serve you well. This is P plus Q times P minus Q, right? Okay? You buy that? We just talked about that before. So what is this?  You follow this? Okay? And you prove that you should say something like, because P is a prime, it must be odd. You should justify why it can't be even. And what is this? Well, okay, I'm running out of time. You see that I can pull out a 2? 1 plus 1 is 2, so I can just pull that out. And I just have R plus S plus 1 left over, right? What do we have left in the second set of parentheses? This is just 2R minus 2S, right? You see that? Well, now what can we do? We can pull out another 2, right?  You see that? What do we want to prove? We want to prove that 8 divides it. Well, we're kind of close. We've got the 4 on the outside. Well, we really like to have an 8 factored out, because then we know that 8 divides it, and then we're done, right? Well, what you want to do is look at what you've got left over. Listen to what I'm saying, and we're going to stop here in a minute. If you can prove that at least one of these guys is even, then you can pull a 2 out, and you've got your 8. Okay? How do you do that? We'll just consider cases, right? Suppose that, for example, suppose R and S are both even, then R minus S is even, and you've got your 2. Suppose R and S are both odd, then R minus S is odd, and you've got your 2. You see that? You guys listening to this? Hope you are. This is helping you, hopefully. Well, what's the last case? One's even and one's odd, right? If they're both even or both odd, that's even, and you've got what you want. Otherwise, one's even and one's odd. Well, what can you say? If one's even and one's odd, the sum of an even and an odd number is odd, right? But then the plus one makes it even, so then you've got your even in that case too, right? You see that? You guys got to start. These are going to get a little more challenging. They're not going to be all like the induction proofs that work themselves out. You have to be a little clever. Then you can do something similar with three. What's the remainder? If you divided P by three, what's the remainder? It's got to be what? One or two, right? Can't be zero because it's a prime and it's bigger than or equal to five. You see that? So you can do the same kind of game. You know P and Q have to have a certain form and then just go through this and you should be able to extract a three. And then you get the answer by that corollary. Sorry, I went through this kind of fast, but I didn't really have a choice. In section 2.2, it says the square of any odd integers of the form 8k plus one. If you use that line, it's kind of... Oh, I see what you're saying. A little bit. Yeah, yeah, okay. Yeah, eight. Yeah, so the square of any odd integers of the form 8k plus one. Okay, so yeah, so if you use that, then you can get the... Yeah, you can get the eight to pop out right away. Yeah, right. Is that something that I assigned to you or not? Yeah, I don't think I assigned that particular problem. That's not a problem. Okay, so here are the rules, okay? If you want to use a previous homework problem, that's okay, but if I haven't assigned it, then you should write a proof of it. It's not a problem. It's getting information. Oh, it's in the section. Okay, anything in the section is fair game. Okay. Anything in the section is fair game. Even if I didn't do it in class, but you should cite it. You should say by corollary, blah, blah, blah. Say where it's coming from, okay?